我一直在堆栈和其他论坛上搜索和尝试各种解决方案,但似乎无法解决此问题。
Git: Branch is ahead by X commits. Doesn't help doing git pull
Why does git say I am 40 commits ahead when I seem up to date and a push-pull (no files) fixes it?
总体问题是我提取了一个网站结账,然后必须对配置(数据库,api位置等)进行一些本地更改,并防止每次我继续存储并重新应用本地更改这些文件。我在1个本地提交下做了所有这些“本地配置提交”。此时git状态显示为1。
root@web1 web]# git status
On branch master
Your branch is ahead of 'origin/master' by 1 commits.
然而,在过去的一个月里,我们一直在开发和修理东西。我们都在各自的分支机构工作,然后合并回一个开发分支,然后从那里到掌握,等等。事情已经准备就绪,我会投入生产并使用'git pull'来降低变化。这似乎运作良好,但我今天注意到状态现在已经改变了。
root@web1 web]# git status
On branch master
Your branch is ahead of 'origin/master' by 31 commits.
当我查看针对origin / master的git日志时,似乎我看到合并进入本地提交?
小日志摘录:
[root@web1 web]# git log origin/master..HEAD
commit 336743eb411804487ad2f8a2e31701b094fb03f0
Merge: 58c8230 3478924
Author: root <root@web1.(none)>
Date: Fri Feb 1 15:32:35 2013 -0500
Merge branch 'master' of http://gitrepo.com/Site
commit 58c82303c523a3c9217dd677ba23582e168007cc
Merge: 6c9de32 0e1c327
Author: root <root@web1.(none)>
Date: Fri Feb 1 15:04:58 2013 -0500
Merge branch 'master' of http://gitrepo.com/Site
commit 6c9de32c2fed77e442e73389aa8041f067a23cc4
Merge: ff586b4 52a7ea9
Author: root <root@web1.(none)>
Date: Fri Feb 1 14:38:08 2013 -0500
Merge branch 'master' of http://gitrepo.com/Site
我怀疑我的回购已被正确“快速转发”,并且在每次拉动后仍然保持1次提前。在对原点/主人进行差异时你可以看到我没有很多变化(貌似)只是配置。这来自原始的配置更改和本地提交。
[root@web1 web]# git diff origin/master..HEAD --name-only
application/config/api.php
application/config/config.php
application/config/database.php
我已经尝试了上面的各种链接,并尝试了提取,更多拉动等无济于事。有没有办法让我的本地仓库能够快速前进,这样我才能看到我所做的1个本地提交,因为我是如何改变我的?我无法将这些更改完全推送到掌握,因为这会导致这些更改被下拉到其他安装。然后我想在解决这个问题之后,最好的部署方式是什么,更改一些配置并能够不断更新。根据我的理解,stash会起作用,但这本质上会使你的更改不合适,然后你可以拉动,然后重新应用但是我无法承受这个小步骤的停机时间,特别是如果它涉及必须解决任何合并冲突。
或者,有没有办法可以以某种方式将这些文件从提交中删除,以便我可以推送以使所有内容都排序?
答案 0 :(得分:1)
如果您的本地提交不在origin/master
,则不能执行快进,而是必须是合并。当您在遥控器后面时,快速前进,没有本地更改。由于您有本地更改,因此无法快进。
也许你想要的是rebase,它会暂时撤销你的本地提交,快进到远程分支的尖端,然后重新应用你的本地提交作为最后一次提交。
git rebase origin/master
或者,如果将其设置为默认上游,并且您没有使用旧版本的Git,那么
git rebase
有些人始终使用rebasing从远程执行,如果远程配置为拒绝合并提交,则需要使用该功能,但是您应该在使用它之前了解rebasing的功能,请参阅{ {3}}和http://git-scm.com/book/en/Git-Branching-Rebasing