如何创建回滚另一个提交的提交?
How can I create a commit that rolls back another one?
为简单起见,让我们创建一个仅包含两次提交的存储库:
mkdir somedir
cd somedir
git init
echo hello > somefile
git add somefile
git commit -m 'first'
echo world >> somefile
git commit -am 'second'
为清楚起见,此时 git log --oneline
returns
fd5b1ce (HEAD -> master) second
f621ab9 first
我想得到的是以下内容
xxxxxxx (HEAD -> master) third
fd5b1ce second
f621ab9 first
somefile
in third
与 somefile
in first
的内容相同。
我当然可以 git cherry-pick master~
(这里 master
是 fd5b1ce
)并完全有利于 first
解决冲突,但也许有更简洁的方法?
commit that rolls back another one?
这似乎很适合 git revert
git revert <second commit>
但这适用于第二次提交(被还原)的所有文件
with somefile
in third having the same content as somefile in first.
如果您只需要还原一个文件,请使用 git restore
。
git restore -SW -s=<first commit> -- somefile
为简单起见,让我们创建一个仅包含两次提交的存储库:
mkdir somedir
cd somedir
git init
echo hello > somefile
git add somefile
git commit -m 'first'
echo world >> somefile
git commit -am 'second'
为清楚起见,此时 git log --oneline
returns
fd5b1ce (HEAD -> master) second
f621ab9 first
我想得到的是以下内容
xxxxxxx (HEAD -> master) third
fd5b1ce second
f621ab9 first
somefile
in third
与 somefile
in first
的内容相同。
我当然可以 git cherry-pick master~
(这里 master
是 fd5b1ce
)并完全有利于 first
解决冲突,但也许有更简洁的方法?
commit that rolls back another one?
这似乎很适合 git revert
git revert <second commit>
但这适用于第二次提交(被还原)的所有文件
with
somefile
in third having the same content as somefile in first.
如果您只需要还原一个文件,请使用 git restore
。
git restore -SW -s=<first commit> -- somefile