Git: Как создать новую ветку из более раннего / старого коммита в основной ветке? - PullRequest
3 голосов
/ 01 июля 2011

Я сделал три коммита в основной ветке: C1, C2 и C3. С этого момента я сделал новую ветку «Branch1». Сделал некоторые изменения и передайте их в C4 на Branch1.

Все будет выглядеть так:

C1--C2--C3<--Master
         \     
          C4<--Branch1    

Однако, теперь я хочу использовать более ранний коммит в Мастере. раскошелиться на новую ветку 'Branch2'. то есть в ветке Мастер, Я хочу вернуться в прошлое на C2 и построить на вершине этого в новая ветка. Основная ветвь не должна быть нарушена. C5 - фиксация изменений изменений, сделанных в новом Branch2. Графически следующий рисунок должен объяснить, что я хочу:

      C5<--Branch2
     /
C1--C2--C3<--Master
         \     
          C4<--Branch1    
  1. Какая последовательность команд git приведет меня туда?

  2. Мой второй вопрос заключается в том, что после достижения дела в секунду рисунок, если выполняется «возврат» для удаления C3 в ветке Master, Как это повлияет на Branch1? Будет ли код в Branch1 стать поврежден или нестабилен?

1 Ответ

8 голосов
/ 01 июля 2011

просто зафиксируйте этот коммит и укажите ветвь для создания:

git checkout -b Branch2 C2

для вашего второго вопроса, который зависит от того, как вы определяете 'revert' (git revert или git reset).в обоих случаях Branch1 по-прежнему будет содержать коммит C3 (помните, в git-ветвях есть только «указатели», информация о предках хранится в самих коммитах).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...