我能做些什么来解决" 1落后于大师"?

时间:2015-12-06 14:20:38

标签: git github bitbucket branching-and-merging git-merge-conflict

推送后,我在远程存储库中看到了这条消息:

  

在主人后面犯1次。

     

此合并存在必须解决的冲突   在它可以提交之前。

     

要手动将这些更改合并到TA20footerLast中,请运行以下命令:

     

> git checkout 7c891f50c557

     

注意:这会创建一个独立的头部!

     

> git merge remotes / origin / master

8 个答案:

答案 0 :(得分:23)

我知道这是一个迟到的答案,但它可以帮助其他人。

在开始之前,如果您对命令行感到不舒服,可以使用 SourceTree GitExtension GitHub Desktop 或您最喜欢的工具。只需按照以下步骤操作:

要解决此问题,您可能有两种方案

1)仅修复提交后面的远程存储库分支

示例:两个分支都在远程端

一个头===主分支

落后===发展分支

<强>解决方案:

i)将存储库克隆到本地工作区:这将为您提供Master分支,这是一个提交头

    git clone repositoryUrl

ii)在本地创建一个带有开发名称和结账的分支

   git checkout -b DevelopBranchName // this command creates and checkout the branch

iii)从远程开发分支拉

   git pull origin DevelopBranchName

iv)将本地Develop分支与远程Develop分支合并

     git merge origin develop 

v)将合并的分支推送到远程Develop分支

     git push origin develop

2)本地主分支位于远程主分支

之后

这意味着每个本地创建的分支都落后了。

在此之前,您必须提交或存储您在提交后面的分支上所做的所有更改。

<强>解决方案:

i)查看当地的主分支

   git checkout master

ii)从远程主分支拉

   git pull origin master

现在,您的本地主服务器与远程分支同步,但由于上述命令,其他本地远程服务器与您的本地主服务器分支不同步。解决这个问题:

1)签出本地主分支机构后面的分支

    git checkout BranchNameBehindCommit

2)与当地的Master分支合并

    git merge master  // Now you branch is in sync with local Master branch

如果此分支位于远程存储库中,则必须进行推送

     git push origin branchBehindCommit

答案 1 :(得分:9)

  1. 克隆叉子:

    • git clone git@github.com:YOUR-USERNAME/YOUR-FORKED-REPO.git
  2. 从分支存储库中的原始存储库添加远程文件:

    • cd into/cloned/fork-repo
    • git remote add upstream git://github.com/ORIGINAL-DEV-USERNAME/REPO-YOU-FORKED-FROM.git
    • git fetch upstream
  3. 从原始存储库更新您的fork以跟上它们的更改:

    • git pull upstream master
    • git push

答案 2 :(得分:1)

如果消息是“ n提交到主服务器后面”。

您需要使用master重新建立您的dev分支。 您收到上述消息是因为检出dev分支主服务器后,主服务器 分支得到了新的提交,并且已经向前发展。 您需要将这些新提交提交到您的dev分支。 步骤:

git checkout master
git pull        #this will update your local master
git checkout yourDevBranch
git rebase master

可能需要解决一些合并冲突。

答案 3 :(得分:0)

如果您的分支机构落后于母公司,请执行以下操作:

git checkout master (you are switching your branch to master)
git pull 
git checkout yourBranch (switch back to your branch)
git merge master

合并后,检查是否存在冲突。
如果没有冲突,则:

git push

如果存在冲突,请修复您的文件,然后:

git add yourFile(s)
git commit -m 'updating my branch'
git push

答案 4 :(得分:0)

假设当前在您的分支机构myBranch
请执行以下操作:-

git status

如果所有更改都已提交

git pull origin master

如果未提交更改,则

git add .

git commit -m"commit changes"

git pull origin master

检查是否存在冲突,而不是解决并提交更改

git add .

git commit -m"resolved conflicts message"

比推送

git push origin myBranch

答案 5 :(得分:-1)

您可能还必须git rebase origin master

答案 6 :(得分:-1)

使用

git cherry-pick <commit-hash>

因此,这将选择您对当前所在git位置的提交。

答案 7 :(得分:-1)

如果分支在master后面,则删除远程分支。然后转到本地分支并运行:

git pull origin master --rebase

然后,再次将分支推到原点:

git push -u origin <branch-name>