Git 工作流程 Howtos
目录
如何解决与 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
强制推送(force push)的后果是什么
前两个技巧需要强制推送,这是因为我们改变了提交的路径。强制推送到你自己的 fork 是没有问题的,只要改变的提交只属于你。