GIT - ¿De dónde derivé?


Volví a un viejo proyecto y corrí el agradable git status para averiguar lo que estaba pasando y noté demasiadas ramas! Quiero hacer un poco de limpieza antes de empezar a trabajar en esto de nuevo, pero no estoy seguro de qué rama viene de cuál..

Por ejemplo, ¿"branchA" deriva de "desarrollar"? ¿"Rama" deriva de "maestro"o " rama"??

¿Cómo puedo responder a las preguntas de ejemplo anteriores?

Author: Gevorg, 2012-03-28

7 answers

No hay una respuesta canónica para esto, ya que las ramas son simplemente punteros a ciertas confirmaciones en un DAG. Por ejemplo, master y foo podrían estar apuntando al mismo commit; si luego creas una rama desde foo, es efectivamente lo mismo que crear una rama desde master.

Dicho esto, si visualiza el gráfico de confirmación (a través de gitk o alguna otra herramienta de historia gráfica), puede obtener una idea general de dónde están los puntos de rama en el gráfico de confirmación, versus dónde varios punteros de rama están señalando.

 14
Author: Amber,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-27 21:38:52

Git merge-base muestra el commit que es el ancestro común de dos ramas.

Uso simple: git merge-base <branch> <branch> muestra la confirmación común de las dos ramas.

 23
Author: patthoyts,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-07 16:41:08

Si está trabajando en Windows o Linux (con GUI), simplemente instale las hermosas git-extensions. Pueden visualizar la rama / fusiona el árbol perfectamente bien.

Http://code.google.com/p/gitextensions/downloads/detail?name=GitExtensions207.zip&can=4&q=

Saludos,

 2
Author: Mario Fraiß,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-27 21:39:06

Puede usar un visor gráfico de árboles, yo estoy usando gitg para ver ramas y diferencias, aunque estoy usando la línea de comandos para el trabajo real la mayor parte del tiempo.

 1
Author: Not_a_Golfer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-27 21:39:02

Apégate a una convención de nombres y ahórrate toda la confusión.

Al crear una rama desde master - digamos, para implementar una función de correo electrónico - puede nombrarla master_emailfeature. Luego, si necesita crear una sub-rama de esta rama para implementar ssl para correos electrónicos, puede nombrarla master_emailfeature_sslandtls.

Esto deja claro qué rama fue creada a partir de la cual con solo mirar el nombre de la rama.

 1
Author: Basil Musa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-01 22:28:28

Si ya estás en una rama, entonces puedes obtener el commit que es el punto donde se bifurcó de otra rama, por ejemplo master, así:

git merge-base --fork-point master
 0
Author: Cory Klein,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-10 21:07:41

Si desea averiguar de qué rama remota deriva su rama local, este comando puede arrojar algo de luz.

git remote show origin

Desplácese hacia abajo hasta que vea "Ramas locales configuradas para 'git pull':" y debajo de eso, se muestra una lista de todas sus ramas locales y la rama remota con la que se fusionará cada una.

 -1
Author: Jake Levsen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-26 14:52:03