Git 工作流操作指南
目录
如何解决与 master 的冲突
首先,rebase 到最新的 master 分支
# The first two steps can be skipped after you do it once. git remote add upstream https://github.com/dmlc/xgboost git fetch upstream git rebase upstream/master
git 可能会显示一些无法合并的冲突,例如
conflicted.py
。手动修改文件以解决冲突。
解决冲突后,将其标记为已解决,通过
git add conflicted.py
然后你可以继续 rebase,通过
git rebase --continue
最后推送到你的 fork,你可能需要在这里强制推送。
git push --force
如何将多个提交合并为一个
有时我们希望合并多个提交,特别是当后面的提交只是对前面提交的修复时,为了创建一个包含一组有意义提交的 PR。你可以按照以下步骤操作。
在此之前,如果你以前没有配置过 git 的默认编辑器,请先配置它。
git config core.editor the-editor-you-like
假设我们要合并最后 3 个提交,输入以下命令
git rebase -i HEAD~3
它会弹出一个文本编辑器。将第一个提交设置为
pick
,并将后面的提交改为squash
。保存文件后,它会弹出另一个文本编辑器,要求你修改合并后的提交消息。
将更改推送到你的 fork,你需要强制推送。
git push --force
强制推送的后果是什么
前两个技巧需要强制推送,这是因为我们改变了提交的路径。只要更改的提交只是你自己的,强制推送到你自己的 fork 是没问题的。