另一方面,只是为了给对话带来良好的实践,我想说的是,你不能重新设置或修改的描述的情况,master
永远不应该发生。合并到共享分支(master
,develop
等)上的每个提交都应该始终是稳定的。我看不出有任何理由解释为什么 WIP 提交不能在专用分支上。
例如,在一种更可取的方法中,您将:
git checkout -b hotfix-branch
git add .
git commit -m "[wip] Fixing index route access"
git push origin wip-branch
然后,完成工作后:
git commit --amend # Let's reword to "[hotfix] Fixed index route access"
git push origin hotfix-branch --force
git checkout master
git merge hotfix-branch # Fast-forward or not, etc., whatever
git push origin master
git push --delete origin hotfix-branch
git branch -d hotfix-branch
在这个例子中(当然可以改进,这不是重点),如果需要,amend
可以用一些fixup
/替换autosquash
,但你得到了画。重点是在专用分支上工作,使用 Git 通过 WIP 提交保存不稳定状态,然后在合并到共享分支之前重写历史记录以保持git log
清洁。
正如您所说,永远不应该在共享分支上重写历史。这就是为什么您不想让自己处于甚至可能会想到这种事情的境地。始终在重写历史无关紧要的专用分支上工作,并在共享分支上合并干净和稳定的提交。(: