您的分支比 'origin/branch' 提前 1 次提交



我知道这个问题在SO中已经讨论了很多。但请耐心等待。

我的大四学生创建了一个名为mav921的分支,我被指示签出该分支并进行工作

所以我做的是git checkout -b local-mav921 origin/mav921

它奏效了。

当我在local-mav921分支完成任务时,我想推送它,所以我做了

git add .
git commit -m "message"

但承诺说:

Your branch is ahead of 'origin/mav921' by 1 commit.
(use "git push" to publish your local commits)
Changes not staged for commit:
... all the files that I was working.

基本上,发生的事情是在运行add & commit之后,它没有提交我的工作。

所以,我试着按照错误消息推送:git push,它说:

fatal: The upstream branch of your current branch does not match
the name of your current branch.  To push to the upstream branch
on the remote, use
git push origin HEAD:mav921
To push to the branch of the same name on the remote, use
git push origin HEAD

运行git branch -a:时

Mav921
mav921
*   local-mav921
master
remotes/origin/mav921
remotes/origin/master

您可以注意到我有Mav921(不要介意,因为我是从master创建的(
。还有mav921(这是因为我从远程签出了一个,而没有创建基于该分支的新分支(。最后,local-mav921(运行gitcheckout -b local-mav921 origin/mav921的结果(

老实说,我不知道如何解决这个问题。如果有人能告诉我发生了什么以及如何解决这个问题,那就太好了。

所以我所做的是git checkout -b local-mav921 origin/mav921

所以现在您的本地分支与它跟踪的远程分支有不同的名称。这很不寻常,但既不违法也不致命。但这确实意味着某些Git快捷方式命令不起作用。

基本上,发生的事情是在运行add&承诺,它没有承诺我的工作。

是的。它很好地完成了你的工作。这就是为什么你领先于遥控器;你做出了新的承诺。

我试图根据错误消息推送:git push,它说:致命:当前分支的上游分支不匹配您当前分支机构的名称

确实如此。正如我一开始所说,你做了一件不同寻常的事。您的本地和远程分支名称不匹配。这意味着像简单的git push这样的快捷方式不起作用。因此,你必须给出完整的命令。但这没有问题!这很容易。信息告诉你该怎么做:

git push origin HEAD:mav921

那就这么做吧。

相关内容

  • 没有找到相关文章

最新更新