这不是一个主要问题,只是我想知道是否可能.
假设我们有两个提交,abcd123
并且wxyz789
发生在非相邻的,分开的地方,远在回购历史中.现在让我们说我们想要还原它们.干
git revert abcd123 wxyz789
Run Code Online (Sandbox Code Playgroud)
将导致两个单独的提交,一个恢复abcd123
,另一个恢复wxyz789
.
这一切都很好,但是如果我们想要在两个提交中修复的错误在逻辑上是链接的,并且为了自我记录的目的,我们想做一个单独的提交包含一个单词" 我现在打破了一些东西 " 我正在恢复文件x,y和z "评论?有没有这样做的git命令?
(我当然知道有可能创建一个提交,我只需手动修复所有更改然后推送.这对于所有的不良原因都是痛苦的.)
Mar*_*air 71
你可以做:
git revert abcd123
git revert --no-commit wxyz789
git commit --amend
Run Code Online (Sandbox Code Playgroud)
...然后编写一个适当的提交消息,描述恢复两个提交的综合效果.
Ely*_*avi 37
如果复杂的恢复相互改变,则revert --no-commit
可能存在问题.
我的简单解决方案是做真正的还原和壁球:
git revert <all commits>
git rebase -i
Run Code Online (Sandbox Code Playgroud)
然后将所有恢复标记为squash
(第一个除外),以创建单个提交.
lyu*_*lyu 22
git revert -n <commits>
git commit
Run Code Online (Sandbox Code Playgroud)
第一个命令将执行所有恢复,而不创建任何提交并暂存最终结果(-n选项).之后,commit命令创建一个提交.
归档时间: |
|
查看次数: |
38153 次 |
最近记录: |