有人可以解释这个git输出:
从主服务器提取分支以在本地节点上运行:
> git pull origin xyz
> git status
# On branch xyz
#Your branch is ahead of 'origin/xyz' by 22 commits.
#Changed but not updated:
... lots of modified stuff
好的,我们想要清除本地更改......
> git log | head
#commit a49b36fd6635f7dd6f72bd256231b3179920ffa4 ...
> git reset --hard a49b36fd6635f7dd6f72bd256231b3179920ffa4
# On branch xyz
# Your branch is ahead of 'origin/xyz' by 22 commits. (huh?)
nothing to commit (working directory clean)
所以,如果它是干净的并且没有什么可以提交的,那么“原点之前的分支”是什么意思?运行“git diff”不返回任何输出。
答案 0 :(得分:3)
git diff
会使您的工作区与索引区别开来。
如果你想对分支进行差异化,请告诉它:
git diff origin/xyz
当git说你'领先'时,意味着你有相对于上游远程分支的未按下的更改。在这种情况下,您的上游似乎是'origin / xyz'。如果再次按下然后再运行状态,此消息将消失。
同样,如果您git fetch
然后git status
,如果获取了更改,您会看到一条消息,指出您已经落后多次提交。如果您在开始编辑后已经未按下更改并且遥控器已经更改(即您已经分道扬),那么您将看到自己都领先和落后!
顺便说一下,如果要清除本地更改,可以使用git clean
代替reset --hard
。或者,您可以将两行简化为git reset --hard HEAD
。
编辑如果您希望丢弃本地更改,则可以使用reset
将工作区移动到远程参考。
git reset --hard origin/xyz
这会将当前分支移动到与origin/xyz
相同的提交。请注意,任何更改的文件都将永远被吹走!如果您想要随身携带更改,请确保先将它们藏起来(或提交然后樱桃挑选)。
答案 1 :(得分:0)
该分支正在追踪另一个分支,即"上游"它的。这意味着您在分支中拥有的内容非常新,如果您想要删除该消息,只需使用
即可git push
在那个分支上。
如果您想永远不要弹出该消息,请使用
git config --unset branch.xyz.merge