无法在Git中推或拉

wqnecbli  于 2023-05-27  发布在  Git
关注(0)|答案(3)|浏览(97)

我对使用Git还很陌生,但我确实了解最基本的知识。然而,我还没有遇到过我有推/拉冲突的情况...直到现在。
另外,我应该指出,我用来与Git存储库交互的GUI工具是Atlassian SourceTree(我们使用Atlassian Stash来管理我们的存储库)。
以下是场景:
我有2个提交到Push,显然有4个变化,我需要Pull
当我尝试Pull时,我得到了这个:

git -c diff.mnemonicprefix=false -c core.quotepath=false fetch origin

git -c diff.mnemonicprefix=false -c core.quotepath=false pull --no-commit origin master
You have not concluded your merge (MERGE_HEAD exists).

Please, commit your changes before you can merge.

Completed with errors, see above.

它说我需要完成合并但它不允许我做任何事。我没有得到一个合并列表,也不是自动合并。我似乎无法通过合并,所以我可以继续解决Push/Pull冲突。
当我尝试Push时,我得到了这个:

git -c diff.mnemonicprefix=false -c core.quotepath=false push -v --tags origin master:master
Pushing to http://XXXXXX@XXXXXXXX.XXXX.XXXX:XXXX/XXXX/XXXX/XXXXX.git
To http://XXXXXX@XXXXXXXX.XXXX.XXXX:XXXX/XXXX/XXXX/XXXXX.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'http://XXXXXX@XXXXXXXX.XXXX.XXXX:XXXX/XXXX/XXXX/XXXXX.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

现在我该怎么解决这个问题呢?!我是不是要Rebase之类的?
我正在阅读有关Fast Forward Push的内容,但我不知道如何在这个工具中做到这一点。如果有必要,我当然可以从终端执行Git命令。我只是不想在没有咨询过对Git和这类问题有更好理解的人之前就跳进去。

fcipmucu

fcipmucu1#

看起来你正在进行合并(也许是以前的尝试?)
git merge --abort将取消合并,并使您处于可以重试拉取然后解决冲突的状态。

fhg3lkii

fhg3lkii2#

完成合并。git status会告诉你什么是挂出。对于每一个,您都需要进行编辑以修复冲突并执行git add。然后是git commit。然后拉,然后推。

r6vfmomb

r6vfmomb3#

有类似的问题,但在使用终端和vscode源代码控制。我用了这个git pull --no-ff然后是git push
或者修改你的gitconfig文件:

  • code ~/.gitconfig #查看gitconfig文件内部。
  • git config --global pull.rebase false # merge(默认策略)
  • git config pull.rebase true # rebase
  • git config pull.ff only #仅快进

然后是git push
merge和rebase的区别https://www.atlassian.com/git/tutorials/merging-vs-rebasing

相关问题