合并两个分支后,Gitlab分支“分歧”

问题描述 投票:1回答:1

我有一个名为refactor的分支,我使用Gitlab Web界面将其合并到master中。这也删除了源分支。

回到shell中,我注意到git仍然认为它位于refactor分支上(不再存在)。我尝试将分支切换回master,但我在本地做了一些进一步的工作,导致未保存的更改。我发现了一个名为stash的新命令(对我来说),所以试过:

$ git stash
warning: LF will be replaced by CRLF in Prec/EnquiryForms/wizard/manifest.xml
The file will have its original line endings in your working directory.
Saved working directory and index state WIP on refactor: 3b174f5 Updated package

然后我可以切换到master

$ git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.

我试图申请藏匿但有冲突

$ git stash apply
Auto-merging Prec/Scripts/_wizard/manifest.xml
CONFLICT (content): Merge conflict in Prec/Scripts/_wizard/manifest.xml
Auto-merging Prec/EnquiryForms/wizard/manifest.xml
CONFLICT (content): Merge conflict in Prec/EnquiryForms/wizard/manifest.xml
Auto-merging Prec/Prec.Manifest.xml
CONFLICT (content): Merge conflict in Prec/Prec.Manifest.xml

所以我还是试着提交,现在卡住了。

$ git status
On branch master
Your branch is up to date with 'origin/master'.

Unmerged paths:
  (use "git reset HEAD <file>..." to unstage)
  (use "git add <file>..." to mark resolution)

        both modified:   Prec/Prec.Manifest.xml
        both modified:   Prec/EnquiryForms/wizard/manifest.xml
        both modified:   Prec/Scripts/_wizard/manifest.xml

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        Prec/Lookups/CLTYPES/

no changes added to commit (use "git add" and/or "git commit -a")


$ git stash list
stash@{0}: WIP on refactor: 3b174f5 Updated package


$ git add .


$ git commit -m "some changes"
[master d5892a6] some changes
 4 files changed, 112 insertions(+)
 create mode 100644 Prec/Lookups/CLTYPES/manifest.xml


$ git push origin master
To gitlab.example.com:repo/new.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to '[email protected]:repo/new.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

在这一点上,我做了一个git pull

$ git pull
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 1 (delta 0)
Unpacking objects: 100% (1/1), done.
From gitlab.example.com:repo/new-coi
   c521196..bce53c1  master     -> origin/master
Auto-merging Prec/Scripts/_wizard/manifest.xml
CONFLICT (content): Merge conflict in Prec/Scripts/_wizard/manifest.xml
Auto-merging Prec/EnquiryForms/wizard/manifest.xml
CONFLICT (content): Merge conflict in Prec/EnquiryForms/wizard/manifest.xml
Auto-merging Prec/Prec.Manifest.xml
CONFLICT (content): Merge conflict in Prec/Prec.Manifest.xml
Automatic merge failed; fix conflicts and then commit the result.

我现在处于以下状态

$ git status
On branch master
Your branch and 'origin/master' have diverged,
and have 1 and 5 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

我真的不明白这里发生了什么,或者如何解决它。我基本上希望在合并分支后将我所做的更改提交到主分支。 Git需要与我的本地目录一样最新。

git gitlab
1个回答
0
投票

从主服务器中提取后,您的更改与推送到主服务器的某些更改(当您正在处理更改时)相冲突。 Git无法自己合并更改,希望您解决冲突然后再次推送。

以下是解决冲突然后再次推送到远程仓库的步骤:Resolve Merge Conflicts using command line

© www.soinside.com 2019 - 2024. All rights reserved.