这个分支提前1次提交

时间:2016-07-15 18:49:32

标签: git github

我不知道我做错了什么。我正在尝试将我的fork与上游同步,因为后面有几个提交。我在这里跟着指南:

https://help.github.com/articles/syncing-a-fork/

在我执行上述步骤并推送它们后,会出现一个新提交:

合并远程跟踪分支'upstream / master'

现在我的fork是上游之前的一个提交。为什么这样,我该怎么办?

3 个答案:

答案 0 :(得分:2)

  1. 为分支配置上游:此上游是您从中派生的原始存储库。

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)
  1. 同步存储库的分支以使其与上游存储库保持最新。

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(-)
  1. 这将更新您的本地存储库(与上游同步本地存储库)。要将更改推送到Github(对您在Github上的存储库执行相同的操作),请按以下步骤:

    $ git push

来源:Syncing A Fork On Github

答案 1 :(得分:1)

您已将上游/主人的更改合并到项目中,然后将合并提交到您的分支。由于这涉及在上游/主服务器上的所有提交之后进行提交,因此合并本身会导致您的分支提前一次提交。

如果要将上游/主控与当前分支同步(即将合并后的材料添加到其中),则必须运行git push upstream master(如果允许)或让回购所有者提取更改。< / p>

答案 2 :(得分:1)

这很有道理。你推到自己的叉子。但原始的回购,还没有撤销你的新提交,所以你的分叉领先于上游/原始回购。要为原始仓库做出贡献,您可能想要提出拉取请求。