gpt4 book ai didi

Git推送分支错误

转载 作者:太空狗 更新时间:2023-10-29 13:30:05 24 4
gpt4 key购买 nike

场景很简单。从 ma​​ster 我有一个名为 myBranch 的分支。我一直在后者工作。完成一些修改后,我想将我的更改从 myBranch 的本地副本推送到远程分支 myBranch。每次尝试此操作时,我都会收到以下错误/警告消息

To git@github.com:brabbit/projectA.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:brabbit/projectA.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.

所以我继续运行正常的 git pull。然后用 git push 重试,出现同样的错误。

你能解释一下这个消息是什么意思以及如何解决它吗?我对 git 很陌生。

最佳答案

您需要更改默认推送行为。被投诉的分支是master ,这似乎不是您正在处理的分支。默认情况下,Git 对待 push.default作为matching ,这意味着当你说 git push ,它会推送 每个 到原点的分支。不幸的是,大多数人并没有将他们所有的本地分支版本都保持最新,这将导致您在上面看到的错误。

发生这种情况是因为在 master 上有新的提交远程存储库中的分支,但是您的本地版本 master没有它们。当您推送时,Git 会尝试将 Remote 设为 master分支匹配您的本地版本。由于本地版本落后于多个提交,这是一个非快进更新(您将丢失历史记录)并且 Git 会提示。

我通常建议人们更改 push.default立即设置为 upstream , simple , 或 current :

git config push.default upstream
git config push.default simple
git config push.default current

您可以阅读 git-config 中的不同之处。手册页(搜索“push.default”)。您还可以在命令行中查看它:

git help config

一旦设置,git push只会推送你所在的分支,这条消息就会消失。

此外,如果您正在考虑使用 git push --force ,在您更改默认推送设置之前不要考虑它。这是丢失历史记录的好方法,这也是 Git 将在 2.0 中更改默认行为的原因——尽管我认为他们应该已经这样做了。

关于Git推送分支错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22806609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com