Añadir un repositorio en git a github

En dos  articulos anteriores, hable sobre los principales comandos de Git, hoy explicare muy concretamente como subir un repositorio a Github.

Necesitamos para ello,  realizar dos acciones:

  •  vincular nuestro repositorio local a un repositorio remoto, y…
  • empujarlo  (push) o colocarlo  allí, ya sea a una rama (branch) o directamente al master que  el la rama principal.

Para ello usaremos dos comandos

git remote add origin

 Se encargará de asociar  el respositorio original con el repositorio remoto en github

Smart Black Power@DESKTOP-695M5L3 MINGW64/H/desarrollo/sierra_maestra(master)                                                                                                                                                                       $ git remote add origin https://github.com/FrankGalanDev/sierraMaestra.git

y el comando:

$ git push -u origin master

que empuja al respositorio remoto creado previamente en github, el contenido del nuestro respositorio local .

Smart Black Power@DESKTOP-695M5L3 MINGW64/H/desarrollo/sierra_maestra (master)                                                                                                                                                                               $ git push -u origin master

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

…..lo que realmente importa no es lo que te da la vida, sino lo que haces con ello….

Trabajar en remoto con Git

Git,  es como casi todo el que se mueve en el mundo de la programación sabe, un gestor de versiones, y una de sus características más potentes, es que permite la participación de diferentes integrantes de un equipo en el desarrollo, a través del uso de branchs(ramas),  lo que enriquece enormemente las potencialidades de la colaboración.

Este es aún más interesante y útil si trabajamos con  repositorios,   hospedados en la red de internet u otra cualquiera de acceso remoto. 

Los comandos que muestro hoy son para eso, o sea los que utiliza Git para conectar y trabajar con repositorios remotos.

Ya que podemos tener tantos repositorios remotos como deseemos,  podremos tener tantas versiones de nuestro código como consideremos necesario, para lo cual vamos a precisar de un flujo de información flúido, sobre todo si vamos a interactuar con varios compañeros.

Aquí algunos de los  comandos:

git remote 

Muestra los nombres de los remotos que posees vinculados, o qué tienes especificado en git.

$ git remote -v

Devuelve  las URLs que Git ha asociado al repositorio remoto. Son las que usará para interactuar con él.  

git clone

Clona un repositorio en la dirección que le des: la sintáxis es:

git clone https://github.com/tu repositorio destino

Si luego de clonar, llamas al comando  remote, debe mostrar como mínimo el repositorio del que ha clonado, y lo hará nombrará origin

git remote add [nombre] [url]:

Añade un repositorio remoto

  git fetch [remote-name] 

Devuelve los datos de tus proyectos remotos.

Este comando, trae al nuestro, los datos de los proyectos alojados en los repositorios remotos, por lo que a partir de ese momento dispondremos de  referencias a todas las ramas de ese remoto, con la posibilidad de poder inspeccionarlas o combinarlas

git fetch origin

En este caso por ejemplo, nos trae todo el trabajo nuevo que ha sido enviado a ese servidor desde que lo clonamos, o desde la última vez que trajimos datos de el.

Es importante destacar que el comando git fetch solo trae datos a nuestro, repositorio local, pero no lo combina automáticamente con el proyecto que estamos desarrollando, ni tampoco actualiza lo que tengamos ya creado.

La combinación debe hacerse de mod manual.

aj https://github.com/Antonio_J/test (fetch)
aj https://github.com/antonio_J/test (push)

Con este comando asignamos el alias aj a este repositorio, y ya podemos usar ese nombre para  enviar o traer datos en función de los permisos que tengamos.

Entonces para traer la información que tiene Antonio, podríamos hacer esto sencillamente:

$ git fetch aj

 Esto nos dara al final algo como esto

* [new branch]      master     -> aj/master
* [newbranch]      test    -> aj/test

Ahora podemos acceder localmente a la rama maestra de Antonio,   con el nombre aj/master, de igual modo, esta queda disponible para que podamos combinarla con alguna rama nuestra o    inspeccionarla.

git push [nombre-remoto] [nombre-rama

Envía  un proyecto a un servidor. Si  por ejemplo lo que quieres  es enviar tu rama master a tu servidor origin, debes ejecutar:

$ git push origin master

Este comando funciona solo en servidores clonados sobre los que tenemos permisos de escritura.

Una cuestión importante, es que funciona solo si nadie con los mismos  permisos  ha enviado datos entretanto.

Si un compañero clona el mismo repositorio y envía información antes que nosotros, no podremos enviar porque será rechazado.

La solucion más fácil  a esto, es hacer un fetch al compañero para bajar su código, combinarlo con el que tenemos y entonces hacer el push al servidor.  

git remote show [nombre-remoto]

Nos devuelve información sobre un servidor remoto especifico.

git remote show:

Nos da información sobre todos los servidores remotos y sus proyectos

Entre la información que nos brinda, nos dirá a cuál rama estamos enviando la información cuando ejecutamos  git push, también nos dice cualés ramas remotas aún no tenemos,  las  que serán combinadas si ejecutamos ejecutes git pull, y las que  han sido eliminadas del servidor.

git remote rename.

Modifica  el nombre de la referencia de un remoto, con la sintaxis :

git remote rename aj antonio

Hemos renombrado el remoto aj como antonio

git remote rm aj

Elimina un remoto

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

…., si avanzo sígueme, si me detengo empújame, si retrocedo mátame…….

Otros comandos de git

Este articulo da continuación a otro que publique sobre Git y sus comandos más básicos.

Continuaremos pues con otros comandos también muy importantes en Git

git log

Permite ver los operaciones que hemos realizado:

git log --oneline

Como resultado nos traerá los commit realizados:

El primer conjunto de letras y números que veremos, a la izquierda es el id del commit, que nos servirá para identificar el commit y si es necesario volcer a un estado anterior a el. Entre paréntesis nos mostrará la rama a la que pertenece el commit y a continuación el mensaje que le agregamos

git commit –amend

Nos permite rectitficar un commit, ya sea que nos hemos equivocado en un detalle importante, en el mensaje, u otra cosa; con este comando rectificaremos, mediante el uso del parametro --amend

git commit --amend -m "Estoy corrigiendo cosas entre ellas mensaje"

git checkout id_commit

Es el comando  que usa git para volver a un commit anterior, o estado anterior a ese commit:

Este potente comando, es el que necesitamos todos, cuando algo falla sin que podamos saber que es, y necesitamos volver a ese momento en que todo funcionaba.

Al regresar se revertirán todos los cambios; si hemos eliminado archivos del  proyecto en el que trabajamos estos se recuperaran o viceversa si se han añadido, desaparecerán al retornar a una posición anterior en el tiempo. 

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

….un sueño es casi todo  y más que  nada, más que todo al soñarlo, casi nada después……

Usando Google Analytics

La herramienta Google Analytics, una de las más conocidas de Google, para aquellos interesados en el tema de posicionamiento de  webs, y aunque  no es la única de la que podemos valernos,  si es quizás la que nos ofrece una interfaz más amigable, amplia y gratis, para implementar campañas y estrategias en cualquier sitio web, de que dispongamos y deseemos obtener un comportamiento.

Desde mi modesta experiencia,  no todo en GA es perfecto, y el uso de su herramienta requiere una curva de aprendizaje que aunque no es alta, necesita mantenerse actualizada, entre otras cuestiones por las propias variaciones que hace Google.

Un uso adecuado de GA, incluye la combinación de otras herramientas que también forman parte de Google Marketing Platform, como Google Data Studio o Google Tag Manager, sobre todo si se pretende trabajar con informes ampliados.

En esta ocasión, hablaré del tema de los informes que Google entrega, por lo que este articulo, será mas entendible para aquellos que ya disponen  y usan cuentas de GA.

Los informes que pone a nuestro alcance Google Analytics, son dos  : Estándar y Mejorado.

Ambos se basan,  en el supuesto de que usted necesita conocer: a quien, que, cuanto y como vende, lo que ofrece en su tienda;  y  para ello le ofrecen diferentes opciones de configuración.

Los elementos básicos que nos brindan son entre otros:

  • Cuántos visitantes únicos hacen clic en el sitio y  en que páginas específicas dentro de él.
  • Cuántas vistas de página en general,  llevan  a  determinadas páginas
  • Cuánto tiempo pasan los visitantes en cada página durante su visita.
  • Cuál es su tasa de rebote
  • Datos demográficos de sus visitantes,  y su origen.

Dicho esto podemos decir que :

El punto de partida para obtener un informe útil,   radica en que esté bien configurado.

Informe Standard

Ofrece varios elementos:

Visión General de Ecommerce: Muestra aquellos datos imprescindibles: el número de transacciones realizadas, la tasa de conversión, y la cantidad de ingresos.

Desempeño del Producto: Permite observar los productos que aparecen en su tienda, los que han sido vendidos, y los ingresos que ha obtenido con ellos, así como el precio promedio de su tienda y la cantidad media de productos.

El Informe de rendimiento de ventas: Recopila, la misma información que el informe de rendimiento de productos, pero hace hincapié en los niveles de ingreso hasta la fecha y establece comparativas, en fechas diferentes.

El informe Transacciones: nos da el comportamiento de los pedidos, listándolos según su ID.

El informe de Tiempo de Compra, indica la demora en que tarda en ejecutarse una transacción desde que se inicia hasta que se ejecuta totalmente la conversión.

Informe mejorado

Como indica su nombre se diferencia del informe estándar al ofrecer detalles adicionales, que debidamente usados y comprendidos , lo ayudaran a mejorar la gestión de su tienda.

La principal diferencia radica en que el informe mejorado, aporta una visión relacionada con el marketing, centrándose en la experiencia de usuario de los visitantes de la tienda, lo cual construye una opción mas profesional y completa del comportamiento de una tienda online.

El informe desempeño del producto mejorado: muestra además de los mismos elementos que su versión estándar, detalles del carrito y los reembolsos.

Esta información como explicaba antes nos dota del conocimiento para una análisis más profundo, acerca de  cómo se comportan, sus clientes dentro de la tienda, el interés generado por su web y en que medida  su diseño es lo suficientemente efectivo para llevar a los clientes hasta la compra real.

El informe de Comportamiento de Compras: requiere un conocimiento básico de conceptos de marketing online, como funnels, conversión y embudo, para comprender como funciona nuestra estructura online, en su objetivo de   conseguir una venta y cuan efectiva es.

Uno de sus elementos más importantes  es que muestra las capas o etapas que componen el embudo y el número de sesiones en cada una.

El informe de comportamiento de pago: detalla  el proceso de pago,  los pasos que esta contiene y las personas que retiene.

El informe de rendimiento de ventas: se extiende con respecto a su versión estándar al mostrar información relacionada con los impuestos, envíos,  y reembolsos.

El Informe de rendimiento del listado de productos de la tienda, nos facilita realizar análisis individuales dentro de un conjunto de productos dado.

Otros informes como las Promociones internas: Ofrecen el rendimiento detallado de las promociones para una categoría.

El informe ampliado también ofrece información sobre la gestión del marketing de afiliados y la efectividad del cuponeo como parte de la estrategia de marketing online que hayamos escogido.

La necesidad el quid de la cuestión

Antes de decidir que análisis usar, o incluso si usarlos ambos, hay que partir de saber que quieres conocer.

Como todas las cosas complejas de este mundo, todo empieza por una pregunta sencilla:

¿qué información quieres obtener?

Esta respuesta dependerá, según mi criterio de tres cuestiones básicas:

  • El conocimiento que tengas de tus clientes y tu entorno de mercado,
  •  tu conocimiento de Google Analytics, 
  • ….y del tiempo de que dispongas para estudiar métrica y trabajar con ella, 

No ahondare en este tema, pero explicado de un modo suscinto, podríamos decir que si llevas una pequeña tienda de corbatas física y online, donde lo haces todo, y tu mercado objetivo son los caballeros de tu ciudad, debería bastarte con un análisis standard, de cómo marcha tu tienda; pero si tu negocio crece, intentas vender a todo el país, e incluso internacionalmente y comienzas a tener trabajadores que atiendan diferentes áreas del negocio, dejándote el tiempo necesario para poder estudiar y comprender mejor a tus clientes, el informe ampliado comienza a ser una oportunidad que no debes dejar pasar de largo.

La complejidad.

El diseño del informe responde a estas mismas preguntas, y debemos evitar llenarnos de información que no necesitamos ni utilizamos, porque convertirá en poco relevante, complejizando innecesariamente una tarea que debes ser fácil de entender y de llevar a cabo periódicamente .

Un informe debe ser tan sencillo de comprender que hasta nuestra abuela lo entienda, sino logramos esto, no estamos en el camino correcto  y hay que trabajarlo hasta que lo simplifiquemos lo suficiente, para que sea entendible y útil.

Lamentablemente en este sentido Google, no lo pone del todo fácil.

El informe estándar es por supuesto más fácil de configurar y existen herramientas adicionales (plugins) para integrarlo a Woocommerce, UltraCart , Shopify,  y Prestashop, en otros casos será necesario la ayuda de especialistas en programación.

No obstante es necesario configurar adecuadamente  lo que queremos recibir desde  nuestra cuenta en GA.

El informe mejorado es mucho más complejo de configurar, lo cual es lógico ya que siguen más comportamientos y por tanto incluyen mas variables en los procesos de compra.

No obstante esa complejidad  se minimiza si tenemos claro que deseamos obtener, y se  convierte en bastante intuitiva la operación, al margen de modificaciones que Google puede hacer sobre el modo en que se obtienen o se configuran sus herramientas

Lo recomendable si se usa el informe mejorado, es usar otras herramientas que redondeen y complementen su información como el Google Data Studio.

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

….un sueño es casi todo  y más que  nada, más que todo al soñarlo, casi nada después……

Entendiendo el concepto de clases

Entender el concepto de clases es un elemento basico cuando programamos,  ya que en si, las clases constituyen la base de la organización estructural del codigo de programacion moderno.
Las clases nos permiten crear objetos que podremos reusar o no, pero que facilitaran la escalabilidad y eficiencia del codigo.

¿Por que?

Porque la clase es como el molde de un zapatero.

Es la base para crear un objeto, lo cual permitira organizar el codigo de una manera muy como en el mundo que nos rodea.

Digamos sin ser muy profundos que un zapato  de caballero, tiene cualquiera que sea el modelo, varias partes comunes: tacon, puntera, plantilla, etc.

Entonces el molde será la clase, cada modelo  será un objeto de esa clase y cada caracteristica un atributo.

De la clase  zapato pueden crearse diferentes objetos que seran usados de diferentes formas, venderse, exhibirse, trasladarse, y para eso necesitará relacionarse con otras clases, como tienda, caja, etc.

De estas relaciones es que hablaré, por la necesidad de su comprension para crear una mejor aplicación.

Las clases pueden relacionarse asociandose, dependiendo una de otra o mediante herencia.

Asociación

Tomemos como ejemplo una base de camiones para transporte. La relación de asociación es aquella necesaria para que la estructura funcione.

Como la que hay entre un usuario_chofer  y su camión, donde se relacionan en ambas direcciones, elusuario chofer posee un camión y ese  camion pertenece a ese chofer.

Una relación parecida  a esta pero de una sola dirección es la que se da entre  la clase combustible y camión. Digamos que hay dos acciones que el  camión realiza sobre el combustible en cada viaje: recibirlo y gastarlo por tanto es una relación unidireccional

Una expresion de esta relación seria algo asi

clase Camion {    
variable viaje;   
 función constructor() 
{        
 $viaje = new Combustible();     
}    
funcion publica recibir()      
funcion publica gastar()   

}

 clase Combustible { }

Lo anterior intenta mostrar la estructura básica de una clase, no está escrito en ningún lenguaje específico aunque inspirado en php y python

Ahí vemos dos clases camión y combustible con una variable viajes que crea un nuevo objeto de combustible sobre el cual incidirá el objeto camión del que se trate, con dos métodos recibir y gastar.

Hablemos de multiplicidad

Toda relación tiene multiplicidad doble, porque se ubica a cada lado de la relación y esta tiene un minimo y un maximo.

La mejor forma de explicarlo es entendiendo por ejemplo las relaciones entre las tablas de una base de datos del tipo relacional.

Los tipos son

1  indica que la multiplicidad a cada lado de la relación es de uno y solo uno

0..1  indica una multiplicidad de 0 o 1  y viene a ser el complemento de una relación de uno

*  indica una relación de cero o varios ( presente en el lado extremo varios del tipo de relación de unos a varios

*..0 cero o varios

1..* uno o varios

La multiplicidad, define además que cuando la  mínima es 0, la relación es opcional y si es mayor o igual que 1 se establece como una relación obligatoria.

Entonces nuestras tablas en una base de datos relacional tendrán una relación de:

 uno a uno si a ambos lados de la relación existe un uno

de uno a muchos si a un lado hay un 1 y al otro  *

de muchos a  muchos si a cada lado hay un *

Y por supuesto sus inversos.

Y para analizar la obligatoriedad por ejemplo en una bd con dos tablas: viajes y camiones, podemos decir que  un camión  podrá tener o no viajes (opcional-> 0..*), pero un viaje pertenecerá si o si un camión (obligatoria->1..*)

Dependencia

Es el tipo de relación, que existe entre dos clases que se necesitan para que la estructura funcione, por ejemplo siguiendo en el área transporte:

no puede hacerse un viaje si no están al clases orden de viaje y camión.

Un modo de verlo es pensar en un objeto que solicita un recurso o un servicio  y otro que lo brinda.

 Herencia

Son relaciones que surge cuando una subclase hereda los atributos de una superclase.  Un ejemplo práctico es pensar en familias de animales, digamos que tenemos una clase llamada Paquidermos.

Esta superclase entre otros atributos tiene:

tipo, trompa(posee un método llamado añadirTrompa) y cola = corta

De  ella heredaran diferentes subfamilias,  elefantes, rinocerontes, hipopótamos, con características y comportamientos parecidos ( no sudan, piel gruesa, y grandes dimensiones). 

Sin embargo,  las subfamilias(subclases), pueden incorporar características nuevas comunes a solo algunas, ejemplo hipopótamos y rinocerontes necesitan refrescarse constantemente.

Podemos seguir creando subclases y derivando. Por ejemplo de la clase elefante,  pueden heredar las subclases elefante africano y elefante asiático.

Mientras que del rinoceronte heredaran  5 subclases: el de java, el indio, el negro, el blanco y el de Sumatra

Y del hipopotamo   heredaran: el hipopotamo común y el hipopotamo pigmeo.

Para estas subclases existirán atributos de con acceso de carácter privado, de carácter protegido y de carácter público.

Expliquémoslo a través del la subclase elefante:

Si en la superclase  existe el atributo tipo, para  la elefante será público  ya que puede acceder a el, tanto elefante como elefante africano y elefante asiático.

El atributo cola, será privado, y no podrá acceder ninguna subclase, para todos la cola tiene un valor “corta”.

Y la variable trompa, es protegida  ya que solo podrá acceder la propia clase Paquidermo  y sus  subclases mediante el método añadirTrompa.  

Otra propiedad de trabajar con clases es el encapsulamiento

Encapsulamiento

Es justo lo que hemos visto en la relaciones , o sea es el mecanismo  que se emplea para  organizar los  datos y métodos de un objeto,  limitando el acceso a ellos solo por el modo que se determine .

Por tanto al crear la clases y respetar estas relaciones estamos encapsulandotodo cuanto necesitamos en una entidad, o estructura, o dicho de otro modo en un objeto

Al encapsular podemos abstraer, o sea podemos al tener concentrados los componentes de un objeto, crear superclases que representan de la manera más abstracta posible los objetos que irán heredando de ellas.

Ser fácil entender entonces, que  las formas de encapsular pueden ser :

  • Estándar: Forma predeterminada según nos interese
  • Abierto : Se puede acceder al atributo de la clase desde el exterior de la Clase
  • Protegido : Solo es accesible desde la superclase y las subclases que heredan  de ella,
  • Semi cerrado : Solo es accesible desde la subclase heredada, para la subclase.
  • Cerrado : Solo es accesible desde la superclase.

Relacionado con la herencia tenemos que entender el poliformismo

Poliformismo

No es más que capacidad que tienen los objetos de una clase para  responder ante un  mensaje en dependencia de los parámetros que utilicemos al invocarlos o llamarlos.

Creo que la forma más sencilla de mostrarlo es que llamemos desde cualquiera de las clases que derivan de Paquidermos al atributo trompa, podremos acceder a él mediante el mismo método añadirTrompa ().

En definitiva el uso de clases y su aprovechamiento permite controlar el comportamiento del usuario,  evitando acciones indeseadas, además de  que el medio mas efectivo para controlar y manejar la complejidad de  las Clases , obligandolas a actuar como cajas negras, que dejan ver mediante una interfaz  el comportamiento pero no los detalles internos.

Lo cual es una ventaja ya que ayuda al programador a separar la interfaz de una clase de su implementación.

De este modo es más fácil limitar el acceso a los datos y que solo se haga mediante las funciones que ponemos a su disposición, con las validaciones que consideremos necesarias.

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

….un sueño es casi todo  y más que  nada, más que todo al soñarlo, casi nada después……

Git, comandos mas importantes

Los comandos  más  importantes de Git, son aquellos que nos ayudan a crear nuestro repositorio, actualizarlo y publicarlo, permitiéndonos su total control, seamos freelance o un equipo de trabajo.

Resumiendo como trabaja git, diré que :

Git controla versiones  en un repositorio local, siguiendo una estructura de edición, preparación y confirmación de acciones sobre el.

Cuando estas programando y estas listo para añadir cambios los preparas con git add . que los coloca en estado stage, o sea  como una copia instantánea lista, la cual solo valdrá si la confirmas con git commit, o será rechazada si la deshaces con git reset. Esta confirmación se guardará  en el historial de proyecto y será entonces si tienes un repositorio remoto cuando usaras git push para enviarlo allí.

No voy a ahondar mucho mas en el tema teorico de que  es git, ni porque se necesitas, o no.

Lo cierto es que si trabajas  en proyectos cortos, tu solo, y manejas bien las versiones de lo que haces con las carpetas en tu ordenador,  bien documentadas,  no lo necesitas obligatoriamente, sin embargo si desarrollas junto a un grupo de desarrolladores, con muchos cambios y participación en el código, manejos de variantes,  etc , git es una excelente opción.

Los comandos que muestro aquí son solo unos pocos, pero que te permitirán saber como funciona git  de modo básico y espero que útil.

Asumo que has instalado git que no tiene mayores complicaciones y estás en la consola.

Git init

Ve hastas la carpeta  donde esta tu código y escribe

git  init 

Te creará un repositorio creará un repositorio local vacio,  dentro de la carpeta donde tenemos el proyecto, con un mensaje como este

 Smart Black Power@DESKTOP-695M5L3 MINGW64 /H/desarrollo/sierra_maestra
 $ git init 
 Initialized empty Git repository in H:/desarrollo/sierra_maestra/.git/ 

Al mismo tiempo se habrá creado una  carpeta oculta llamada .git, que  es la encargada de gestionar el repositorio que acabamos de crear. Si quieres dejar de utilizar git, borra esa carpeta y listo, si quieres volver a utilizarlo vuelve a crear el repositorio con : git init

Para ver las carpetas ocultas utiliza el comando:  ls -a.

 Smart Black Power@DESKTOP-695M5L3 MINGW64 /H/desarrollo/sierra_maestra (master)
 $ ls -a
  ./.git/js/'plantilla sierra maestra V1.html' 
 ../css/'Plantilla pag web 1.psd'   plantilla-sierra-maestra-1.jpg 

Para conocer el estado del repositorio, los commit realizados , escribe

git status

El resultado como no has hecho nada aun en el repositorio será:

  Smart Black Power@DESKTOP-695M5L3 MINGW64 /H/desarrollo/sierra_maestra (master)
 $ git status
 On branch master
  
 No commits yet
  
 Untracked files:
   (use "git add <file>..." to include in what will be committed)
         Plantilla pag web 1.psd
         css/
         js/
         plantilla sierra maestra V1.html
         plantilla-sierra-maestra-1.jpg
  
 nothing added to commit but untracked files present (use "git add" to track) 

Lo primero que vemos es “On branch master” esto significa que estamos en la rama principal, es la rama por defecto cuando creamos un repositorio.Git tiene dos procesos para gestionar nuestros archivos. Primero los tenemos que añadir a una zona intermedia conocida como stage y después tenemos que confirmar el paso  definitivo de los archivos al repositorio.

Nota:

Branch : rama de proyecto, puedes crear tantas como desees, y después desecharlas o llevarlas  al proyecto

Master: rama original  y principal del proyecto y la que ese establece por defecto.

git add

git add .

Importante: Hay que dejar un espacio entre add y el punto”

Con este comando le decimos a git que pase todos los archivos que estén sin pasar al estado stage.

 Smart Black Power@DESKTOP-695M5L3 MINGW64 /H/desarrollo/sierra_maestra (master)
 $ git add .
 warning: LF will be replaced by CRLF in css/bootstrap-grid.css. The file will have its original line endings in your working directory
 warning: LF will be replaced by CRLF in css/bootstrap-grid.min.css.
 The file will have its original line endings in your working directory
 warning: LF will be replaced by CRLF in css/bootstrap-reboot.css.
 The file will have its original line endings in your working directory
 warning: LF will be replaced by CRLF in css/bootstrap-reboot.min.css. ...........

Si ahora volvemos ejecutar el comando git status obtendremos algo como esto:

  Smart Black Power@DESKTOP-695M5L3 MINGW64 /H/desarrollo/sierra_maestra (master)
 $ git status
 On branch master
  
 No commits yet
  
 Changes to be committed:
   (use "git rm --cached <file>..." to unstage)
         new file:   Plantilla pag web 1.psd
         new file:   css/bootstrap-grid.css
         new file:   css/bootstrap-grid.css.map
         new file:   css/bootstrap-grid.min.css
         new file:   css/bootstrap-grid.min.css.map
         new file:   css/bootstrap-reboot.css
         new file:   css/bootstrap-reboot.css.map
      .............

git commit  

Para confirmar estos archivos y que pasen  definitivamente al  repositorio,  utilizamos como ya dijimos  commit .

Utilizamos el parámetro -m para indicarle una descripción del commit que vamos a hacer, en este caso le decimos que es el commit inicial del proyecto.

 Smart Black Power@DESKTOP-695M5L3 MINGW64 /H/desarrollo/sierra_maestra (master)
 $ git commit -m "Commit inicial del proyecto"
 [master (root-commit) 9e33f1e] Commit inicial del proyecto
  25 files changed, 36210 insertions(+)
  create mode 100644 Plantilla pag web 1.psd
  create mode 100644 css/bootstrap-grid.css
  create mode 100644 css/bootstrap-grid.css.map
  create mode 100644 css/bootstrap-grid.min.css
  create mode 100644 css/bootstrap-grid.min.css.map
  create mode 100644 css/bootstrap-reboot.css
  create mode 100644 css/bootstrap-reboot.css.map
  create mode 100644 css/bootstrap-reboot.min.css
  create mode 100644 css/bootstrap-reboot.min.css.map
  create mode 100644 css/bootstrap.css
  create mode 100644 css/bootstrap.css.map
.............

Si no indicamos el parámetro -m se abrirá un editor de código de terminal  que hayamos definido como editor por defecto puede ser Vim u otro, deberemos escribir  el mensaje Si volvemos a ejecutar el comando git status obtendremos este mensaje:

 Smart Black Power@DESKTOP-695M5L3 MINGW64 /H/desarrollo/sierra_maestra (master)
 $ git status
 On branch master
 nothing to commit, working tree clean 

Esto significa que no hay nada para confirmar, es decir que todos los archivos se encuentran ya en el repositorio.

En resumen

git  add: Añade modificaciones al codigo

commit:  Confirma las modificaciones en el código.

Usa: git commit -m”comentarios sobre el commit”  como buena practica

Push:  añadir un proyecto, código o modificación al repositorio externo, por ejemplo github

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

…., si avanzo sígueme, si me detengo empújame, si retrocedo mátame…….

Algunos comandos en mac

Algunos de los comandos que uso para navegar desde la consola en el mac

Listar todos las  carpetas y archivos de la carpeta donde te encuentras

ls 

Listar todos archivos  y carpetas ocultos

ls –a

Crear una carpeta con un nombre dado

mkdir nombreCarpeta

Entrar a una carpeta

cd nombreCarpeta

Salir de una carpeta

cd ..

Eliminar una carpeta

rm –m nombreCarpeta

Limpiar los comandos usados de la consola

clear

Reescribir un comando recién escrito  en consola, durante la sesión

teclas de flechas, hacia arriba o hacia abajo en dependencia del orden que se desee.

Crear un archivo

touch documentoNuevo.doc

Guardar un archivo desde sublime text

A veces queremos guardar un archivo recién creado y no nos aparece la ubicación al desplegar save as. Basta con abrir guardar como desplegara las carpetas y podrás escoger donde guardar

Y listo, esto es todo.

Espero modestamente que este artículo, sirva de ayuda a alguien.

Gracias.

….subir montañas hermana hombres…..