У меня есть вопрос, связанный с 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
.
Привет @Schwern. То, что вы здесь описали, похоже на то, что мне нужно - я попробую обновить. В любом случае спасибо за быстрый ответ
Обновление: Проверил - это то, что мне нужно. Большое спасибо
Непонятно, что вы здесь хотите сделать. Такие слова, как «восстановить» и такие команды, как «вернуть», подразумевают, что вы хотите отказаться от существующей работы. Но я думаю, что вы просто хотите сделать новую работу на основе старого коммита. Конкретный пример может помочь.