То есть, вы sh B и C были во вторичной ветке? Сделайте новую ветку прямо сейчас (с головой в C), чтобы сохранить B и C, но не проверяйте это; остаться на хозяине или что-то еще. Сейчас git reset --hard A
.
Пример
Я сделаю A, затем B, затем C, на мастере:
$ echo "this is A" >> test.txt
$ git init
Initialized empty Git repository in /Users/mattmobile/Desktop/f/.git/
$ git add .
$ git commit -a -m "this is A"
[master (root-commit) 14cfab0] this is A
1 file changed, 1 insertion(+)
create mode 100644 test.txt
$ echo "this is B" >> test.txt
$ git commit -a -m "this is B"
[master d55a780] this is B
1 file changed, 1 insertion(+)
$ echo "this is C" >> test.txt
$ git commit -a -m "this is C"
[master 328183e] this is C
1 file changed, 1 insertion(+)
Давайте проверим это; ага, А потом Б, потом C:
$ git log
commit 328183e34767ed1bb06834e47d9bb3524e768546 (HEAD -> master)
this is C
commit d55a780bcf1bda20ad7ceacce7c7c3777295fd59
this is B
commit 14cfab017f3718bc7f3126e73aa187ec62b5d2a3
this is A
Теперь я поражен сожалением. Если бы только B и C были в их собственной ветви mybranch
, и я мог бы go вернуться к A на ведущем и продолжить работать. ОК:
$ git branch mybranch
$ git reset --hard 14cfab
HEAD is now at 14cfab0 this is A
Так что теперь mybranch
находится на C (и сохраняет C и B с родителем A), но master
на A, и я могу продолжать работать. Давай докажем это. Я добавлю D:
$ git status
On branch master
nothing to commit, working tree clean
$ echo "this is D" >> test.txt
$ git commit -a -m "this is D"
[master bf8a4d4] this is D
1 file changed, 1 insertion(+)
А что у нас есть?
$ git log
commit bf8a4d478ce61a78de94619ffea1dc58d1c9a799 (HEAD -> master)
this is D
commit 14cfab017f3718bc7f3126e73aa187ec62b5d2a3
this is A
Итак, master
состоит из A, а затем D. Как раз то, что мы хотели. Между тем, B и C все еще живы как mybranch
:
$ git checkout mybranch
Switched to branch 'mybranch'
$ git log
commit 328183e34767ed1bb06834e47d9bb3524e768546 (HEAD -> mybranch)
this is C
commit d55a780bcf1bda20ad7ceacce7c7c3777295fd59
this is B
commit 14cfab017f3718bc7f3126e73aa187ec62b5d2a3
this is A