我不知道我做错了什么。我正在尝试将我的fork与上游同步,因为后面有几个提交。我在这里跟着指南:
https://help.github.com/articles/syncing-a-fork/
在我执行上述步骤并推送它们后,会出现一个新提交:
合并远程跟踪分支'upstream / master'
现在我的fork是上游之前的一个提交。为什么这样,我该怎么办?
答案 0 :(得分:2)
- 为分支配置上游:此上游是您从中派生的原始存储库。
A。打开Git Bash。
B。列出当前为您的fork配置的远程存储库。
$ git remote -v
> origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
> origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
B。指定将与派生同步的新的远程上游资源库。
$ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
C。验证您为分叉指定的新上游存储库。
$ git remote -v
> origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
> origin https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
> upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
> upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)
- 同步存储库的分支以使其与上游存储库保持最新。
A。将当前工作目录更改为本地项目。
B。从上游存储库中获取分支及其各自的提交。提交给master的内容将存储在本地分支(上游/ master)中。
$ git fetch upstream
> remote: Counting objects: 75, done.
> remote: Compressing objects: 100% (53/53), done.
> remote: Total 62 (delta 27), reused 44 (delta 9)
> Unpacking objects: 100% (62/62), done.
> From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
> * [new branch] master -> upstream/master
C。检查您的fork的本地master分支。
$ git checkout master
> Switched to branch 'master'
D。将更改从上游/主服务器合并到本地主服务器分支。这将使fork的master分支与上游存储库同步,而不会丢失本地更改。
$ git merge upstream/master
> Updating a422352..5fdff0f
> Fast-forward
> README | 9 -------
> README.md | 7 ++++++
> 2 files changed, 7 insertions(+), 9 deletions(-)
> delete mode 100644 README
> create mode 100644 README.md
如果您的本地分支没有任何唯一的提交,则Git会执行“快进”:
$ git merge upstream/master
> Updating 34e91da..16c56ad
> Fast-forward
> README.md | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
这将更新您的本地存储库(与上游同步本地存储库)。要将更改推送到Github(对您在Github上的存储库执行相同的操作),请按以下步骤:
$ git push
答案 1 :(得分:1)
您已将上游/主人的更改合并到项目中,然后将合并提交到您的分支。由于这涉及在上游/主服务器上的所有提交之后进行提交,因此合并本身会导致您的分支提前一次提交。
如果要将上游/主控与当前分支同步(即将合并后的材料添加到其中),则必须运行git push upstream master
(如果允许)或让回购所有者提取更改。< / p>
答案 2 :(得分:1)
这很有道理。你推到自己的叉子。但原始的回购,还没有撤销你的新提交,所以你的分叉领先于上游/原始回购。要为原始仓库做出贡献,您可能想要提出拉取请求。