Git:分支I';I’我不承诺在始发地/船长之前

Git:分支I';I’我不承诺在始发地/船长之前,git,version-control,Git,Version Control,我百分之百地与一家分支机构合作,这家分支机构是我从主分支机构发展而来的。现在,一位同事又回到了origin/master,我试图将这些更改推到我的个人分支中。当我执行“git checkout master”后接“git status”时,我得到以下信息: # Your branch is ahead of 'origin/master' by 2 commits. 一个我从未承诺过的分支如何提前2次承诺?找出它们是什么并从本质上撤销它们的最佳方法是什么?我不希望将任何内容推回到origin/

我百分之百地与一家分支机构合作,这家分支机构是我从主分支机构发展而来的。现在,一位同事又回到了origin/master,我试图将这些更改推到我的个人分支中。当我执行“git checkout master”后接“git status”时,我得到以下信息:

# Your branch is ahead of 'origin/master' by 2 commits.

一个我从未承诺过的分支如何提前2次承诺?找出它们是什么并从本质上撤销它们的最佳方法是什么?我不希望将任何内容推回到origin/master,因为这可能会导致未知的冲突。

要查看头部中不在origin/master中的提交,请执行以下操作:

git log origin/master..
git reset --hard origin/master
要将它们吹走,使您的头部与原点/主控相同:

git log origin/master..
git reset --hard origin/master

您是如何将更改推送到自己的存储库的?我注意到你提到“推”。。。来源是中央回购协议吗?你同事的回购协议?我怀疑你实际上想做的是直接或从一个中心中转点拉入同事的更改,而不是推动。可能只是因为您在origin/master之前所做的两项更改实际上是您同事的更改,但origin/master跟踪分支已过时。

您是否对正在处理的分支执行了任何
git rebase


如果没有,您可以尝试复制您的分支(
git checkout-b testrebase
),并发出一个
git rebase master
,看看是否有效。这将解开您相对于master所做的所有提交,然后尝试将它们应用回去(使历史基本上有意义)。如果它不起作用,只需删除testrebase。

您正在处理master的一个分支,并且您已经提交了两个不在
origin/master
中的提交

消息
#您的分支比“origin/master”提前2次提交。
的意思是:

# Your branch 'mybranch' has two commits not in 'origin/master'
想象一下git用户SVN一样的版本号,您的分支有提交1、2、3、4、5-但是
origin/master
只有1、2、3。因此,修订历史看起来像下面糟糕的ASCII图表

your branch                                   -- [commit 4]--[commit 5]
                                             /                    /\ HEAD
master --[commit 1]--[commit 2]--[commit 3]-/
                                       /\ origin/master
要在日志中显示最后两次提交,可以执行

git log HEAD..HEAD~2

您可能需要确保您的源代码/主代码与主代码的回购版本是最新的。尝试运行:

git fetch origin master
因此,您的本地来源/主数据与回购协议的主数据相同。然后当你跑的时候

git pull origin master

您应该能够准确地显示您的本地主机有多少次提交。之后,您可以运行以查看哪些提交实际上是不同的。

谢谢araqnid。只是好奇,git记录的是origin/master。。在这种情况下该怎么办?对于接受一系列修订的git命令,a..B是“B^a”或“B--不是a”的简写。“A…”本身就是“头——不是A”的缩写。git加载修订版B,然后返回修订图,在遇到可从A(通常是A本身)访问的提交时停止。在一个简单的修订历史中,图形只是一条线,这简化为显示a到B(包括B)之后的提交。我一直看到git问题的答案是“只需键入这个”,而没有解释所有小标记和选项的含义。谢谢你写了这篇解释性的评论。对于Git这样一个简单的工具来说,这是最让人困惑的部分。我和你有完全相同的问题。我从来没有向我的主分支承诺过。我总是分道扬镳,做出改变。当我做“git pull origin master”时,我发现它落后了200次提交。为什么?我从未碰过它。我希望他们能澄清此事。