Git 工作流指南
目录
如何解决与主分支的冲突
首先变基到最新的主分支
# 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
然后你可以继续进行变基操作通过
git rebase --continue
最后推送到你的分支,你可能需要在这里强制推送。
git push --force
如何将多个提交合并为一个
有时我们希望合并多个提交,特别是当后续提交仅是对之前提交的修正时,以创建一个包含一组有意义提交的PR。您可以通过以下步骤完成。
在此之前,如果你之前没有配置过,请配置git的默认编辑器。
git config core.editor the-editor-you-like
假设我们想要合并最后3次提交,输入以下命令
git rebase -i HEAD~3
它将弹出一个文本编辑器。将第一个提交设置为
pick
,并将后续的提交更改为squash
。保存文件后,将会弹出另一个文本编辑器,要求您修改合并的提交消息。
将更改推送到你的分支,你需要强制推送。
git push --force
强制推送的后果是什么
前两个技巧需要强制推送,这是因为我们改变了提交的路径。只要更改的提交仅属于你自己,强制推送到你自己的分支是可以的。