У меня есть вопрос, связанный с git
Мне нужно сделать следующее:
Как правильно и безопасно это сделать? Я думаю о первом варианте
git revert <mycommit_name>
или
git reset --soft <mycommit_name>
заранее спасибо
Я думаю, вы спрашиваете, как вы работаете на основе более старой версии.
Например, у вас есть такие коммиты...
* C [master] - added the cool thing
|
* B - fixed that annoying bug
|
* A - did that mundane task
Вы можете увидеть такой вид вашего репозитория с помощью git log --graph --decorate --all --oneline
.
Теперь, по какой-то причине, вы хотите поработать над коммитом B. Создайте ветку из коммита B. Ветка — это не что иное, как метка коммита. git-branch опционально принимает отправную точку для новой ветки.
$ git branch B_branch B
* C [master] - added the cool thing
|
* B [B_branch] - fixed that annoying bug
|
* A - did that mundane task
Теперь у вас есть B_branch в коммите B. Переключитесь на эту ветку и сделайте несколько коммитов. Они будут поверх Б. Мастера это не затронет.
$ git switch B_branch
...work work work...
$ git commit -m 'B commit 1'
...work work work...
$ git commit -m 'B commit 2'
* E [B_branch] - B commit 2
|
* D - B commit 1
|
| * C [master] - added the cool thing
| /
* B - fixed that annoying bug
|
* A - did that mundane task
И когда вы закончите, переключитесь обратно на мастера. git switch master
.