说我有以下提交历史记录:
4317629 Bug-100 : Formatting / Cosmetic Changes
da10348 Bug-100 : Wire Up UI
9b49b0a Bug-100 : Added UI
现在,我发现在提交da10348
中,我有一些文件:a.txt
,b.txt
,c.txt
包含我需要删除的行/固定。
有人可以告诉我我该怎么做吗?
答案 0 :(得分:1)
您必须将您的分支重新绑定到要按顺序更改的提交
提交后更改历史记录所以实际上在这种情况下你必须重新定义
在您想要更改的(^
运算符)之前的提交上的分支:
git rebase -i da10348^
更改提交以编辑和实施更改,然后:
git commit -a --amend --no-edit
最后完成了rebase:
git rebase --continue
答案 1 :(得分:1)
请注意,只有在您为要更改的提交的所有后代提交重写历史记录时,才能执行此操作。否则,您应该只在当前主分支的顶端进行更改。
如果你想这样做,你可以执行
git checkout da10348
# make changes
git commit -a --amend
git rebase --onto <amended-sha> da10348 <your-branch>
或者如果您更喜欢交互式rebase
git rebase -i da10348^
# change "pick da10348" to "edit da10348"
# save, and make changes when rebase -i stops at da10348
答案 2 :(得分:1)
这是我发现最容易对最近的提交进行小修复的方法,因为它只需要一个rebase命令(即没有git rebase --continue
)并且不涉及记住提交哈希。
git rebase -i origin/master
如果提交尚未推送到原点,或者git rebase -i HEAD~3
基于how far in the history提交更改是(可以高估 - 更老)承诺不会被改变)f
或fixup
。