Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git “我能做些什么来解决”;1“在主人后面承诺”吗;?_Git_Github_Bitbucket_Branching And Merging_Git Merge Conflict - Fatal编程技术网

Git “我能做些什么来解决”;1“在主人后面承诺”吗;?

Git “我能做些什么来解决”;1“在主人后面承诺”吗;?,git,github,bitbucket,branching-and-merging,git-merge-conflict,Git,Github,Bitbucket,Branching And Merging,Git Merge Conflict,推送后,我在远程存储库中看到以下消息: 我在主人后面承诺 此合并存在冲突,必须先解决这些冲突,然后才能提交 要手动将这些更改合并到TA20footer中,请最后运行以下命令: git签出7c891f50c557 注意:这将创建一个分离的头部 git合并遥控器/源/主机 在开始之前,如果您对命令行感到不舒服,可以使用SourceTree、GitExtensions、GitHub Desktop或您喜爱的工具执行以下所有步骤 要解决此问题,您可能有两种方案: 1)仅修复提交后的远程存储库分支 示例:

推送后,我在远程存储库中看到以下消息:

我在主人后面承诺

此合并存在冲突,必须先解决这些冲突,然后才能提交

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

git签出7c891f50c557

注意:这将创建一个分离的头部

git合并遥控器/源/主机


在开始之前,如果您对命令行感到不舒服,可以使用SourceTreeGitExtensionsGitHub Desktop或您喜爱的工具执行以下所有步骤

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

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

示例:两个分支都位于远程端

前进===主分支

git checkout master
git pull origin master
git checkout BranchNameBehindCommit
git merge master  // Now your branch is in sync with the local Master branch
后面===开发分支

  git merge origin develop
  git push origin develop
解决方案:

  • 将存储库克隆到本地工作区:这将为您提供主分支,它位于提交之前

    git clone repositoryUrl
    
  • 创建一个具有开发名称的分支,并在本地签出到该分支

    git checkout -b DevelopBranchName // this command creates and checkout the branch
    
  • 从远程开发分支提取可能发生冲突。如果是,请修复 冲突并提交更改

     git pull origin DevelopBranchName
    
  • 将本地开发分支与远程开发分支合并

      git merge origin develop
    
      git push origin develop
    
  • 将合并的分支推送到远程开发分支

      git merge origin develop
    
      git push origin develop
    
  • 2)本地主分支位于远程主分支的后面

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

    在此之前,您必须提交或隐藏在提交后的分支上所做的所有更改

    解决方案:

  • 签出您当地的主分支

    git checkout master
    
    git pull origin master
    
    git checkout BranchNameBehindCommit
    
    git merge master  // Now your branch is in sync with the local Master branch
    
  • 从远程主分支提取

    git checkout master
    
    git pull origin master
    
    git checkout BranchNameBehindCommit
    
    git merge master  // Now your branch is in sync with the local Master branch
    
  • 现在,本地主机与远程分支同步。由于上述命令,从上一个本地主分支分支的其他本地分支不同步。要解决这个问题:

  • 签出本地主分支后面的分支

    git checkout master
    
    git pull origin master
    
    git checkout BranchNameBehindCommit
    
    git merge master  // Now your branch is in sync with the local Master branch
    
  • 与本地主分支合并

    git checkout master
    
    git pull origin master
    
    git checkout BranchNameBehindCommit
    
    git merge master  // Now your branch is in sync with the local Master branch
    
  • 如果此分支位于远程存储库上,则必须推送更改

        git push origin branchBehindCommit
    
  • 克隆你的叉子:

    • git克隆git@github.com:YOUR-USERNAME/YOUR-FORKED-REPO.git
  • 在分叉存储库中从原始存储库添加远程:

    • cd-into/cloned/fork-repo
    • git远程添加上游git://github.com/ORIGINAL-DEV-USERNAME/REPO-YOU-FORKED-FROM.git
    • git取上游
  • 从原始回购更新您的fork以跟上其变化:

    • git拉动上游主机
    • git推送
  • 使用

    git樱桃采摘
    

    因此,这将选择您的后台提交到您所在的git位置。

    如果您的分支被master后台提交,请执行以下操作:

    git签出主机(您正在将分支切换到主机)
    吉特拉力
    git签出您的分支(切换回您的分支)
    git合并主机
    
    合并后,检查是否存在冲突。
    如果没有冲突,则:

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

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

    您需要使用master重新设置开发分支的基础。 您收到上面的消息是因为在从master签出dev分支后,master分支得到了新的commit,并且已经前进了。 您需要将这些新提交给您的开发分支

    步骤:

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

    可能存在一些必须解决的合并冲突。如果分支位于主分支之后,则删除远程分支。然后转到本地分支并运行:

    git pull origin master --rebase
    
    然后,再次将分支推送到原点:

    git push -u origin <branch-name>
    
    git推送-u原点
    
    假设您目前在您的分支机构
    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
    

    通常,开发人员没有进入master的权限。在这种情况下,这个解决方案会更好:只想补充一点,重新定基应该只用于私有分支:重新定基应该小心应用,因为它重写了提交散列,可能会导致一些问题。在1)->3)给出一个错误:自动合并失败;修复冲突,然后提交结果。如果您想查看主机上的1次新提交是什么,请运行
    git log-1-p origin/master
    这不是一个好主意。非常感谢,这正是我需要的。工作起来很有魅力。