2

因此,据我了解,在我提出拉取请求并合并后,GitHub 会创建一个“合并提交”来表示这一点。

但是,如果我再次发出拉取请求,即使在将合并提交合并到我的本地分支之后,它也会显示来自先前拉取请求的所有提交。

我似乎可以解决这个问题的唯一方法是直接在合并拉取请求之后,将我的本地头重置为 GitKraken 中原始存储库的合并提交,然后强制推送到我的 fork。

问题是,这感觉像是一种非常错误的做事方式。真的吗?如果是这样,我应该怎么做呢?

4

1 回答 1

2

强制推动通常意味着某些事情不太对劲。

听起来您在点击 GitHub.com 上的合并按钮后并没有更新本地上游分支。

精简版

git checkout master
git pull --all
git checkout -b feature-branch
git add stuff
git commit -m "cool feature"
git push origin feature-branch
<click merge on GitHub.com>
git checkout master
git pull --all -p
git branch -d feature-branch
<see refs move, your feature branch get cleaned>

如果您从这一点再次分支,您将不会在以后的 PR 中看到“酷特性”提交,因为您的本地 master 拥有它。

更多细节。

合并后,运行 git pull --all -p 以使用所有遥控器及其参考来更新您的本地存储库。 -p还将修剪合并的分支引用以清理您的选项卡完整列表。

所以,顺序通常是:

git checkout master git pull --all -p ; 这应该更新您的本地 master,除非它与上游不同,如果您在 master 上有本地更改,您应该推送它们,或者通过它们离开。

如果你想把它们扔掉,让你的主人成为上游的副本

git reset --hard origin/master将使当前本地分支成为远程引用的副本。

于 2017-06-05T22:52:29.013 回答