Git状态显示X提交之前的本地分支-应仅为1
我一直在stack和其他论坛上搜索并尝试各种解决方案,但似乎无法解决这个问题 总的问题是,我拉了一个站点签出,然后不得不对配置(数据库、api位置等)进行一些本地更改,以防止每次我继续并将本地更改提交到这些文件时必须隐藏和重新应用。我在1个本地提交下作为“本地配置提交”完成了所有这一切。此时git的状态显示它领先1Git状态显示X提交之前的本地分支-应仅为1,git,git-commit,fast-forward,Git,Git Commit,Fast Forward,我一直在stack和其他论坛上搜索并尝试各种解决方案,但似乎无法解决这个问题 总的问题是,我拉了一个站点签出,然后不得不对配置(数据库、api位置等)进行一些本地更改,以防止每次我继续并将本地更改提交到这些文件时必须隐藏和重新应用。我在1个本地提交下作为“本地配置提交”完成了所有这一切。此时git的状态显示它领先1 root@web1 web]# git status On branch master Your branch is ahead of 'origin/master' by
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个本地承诺是如何“超前”的?我不能将这些更改推送到master,因为这会导致这些更改被拉到其他安装中。然后我想在解决了这个问题之后,部署、更改一些配置并能够持续更新的最佳方式是什么。从我的理解来看,隐藏是可行的,但这实质上会将您的更改移开,然后您可以退出,然后重新应用,但我负担不起这一小步的停机时间,特别是当它涉及到必须解决任何合并冲突时
或者,有没有一种方法可以让我从提交中提取这些文件,这样我就可以推动对所有内容进行排序?如果您的本地提交不在源代码/master中,则不能快速进行,而必须是合并。当您在遥控器后面时,将执行快进操作,无需进行本地更改。由于您有本地更改,因此无法快速前进 也许您想要的是重新设置基础,这将临时撤消本地提交,快进到远程分支的顶端,然后重新应用本地提交作为最后一次提交
git rebase origin/master
或者,如果它被设置为默认上游,并且您没有使用Git的旧版本,只需
git rebase
有些人总是使用重定基来从远程设备提取数据,如果远程设备被配置为拒绝合并提交,这是必需的,但是在随意使用它之前,您应该了解重定基干了什么,请参见和如果您有一个不在
源代码/master
中的本地提交,那么它必须是一个合并。当您在遥控器后面时,将执行快进操作,无需进行本地更改。由于您有本地更改,因此无法快速前进
也许您想要的是重新设置基础,这将临时撤消本地提交,快进到远程分支的顶端,然后重新应用本地提交作为最后一次提交
git rebase origin/master
或者,如果它被设置为默认上游,并且您没有使用Git的旧版本,只需
git rebase
有些人总是使用重定基来从远程设备进行拉取,如果远程设备配置为拒绝合并提交,这是必需的,但是在随意使用它之前,您应该了解重定基干了什么,请参见和谢谢。我以为我已经这么做了,但我想我还没有试过。这似乎就是我要找的。我能够成功地进行更新,而且我不仅提前了3次提交(在发帖时我还以为是1次提交)。使用rebase来推送开发代码看起来也是我需要向前推进的。进行了一些初步测试,情况看起来不错。非常感谢!不过我想澄清一下。是
git-rebase-origin/master
,而不是短版本。我以前试过的短的git-rebase
,对我没有任何帮助。在那里添加“起源/大师”就是魔法发生的原因。再次感谢。对于当前版本的Git,您可以只说Git rebase
,手册上说:如果未指定
,则在branch..remote
和branch..merge
选项中配置的上游将被使用。我读到了,上游设置为master,但只是Git rebase
没有为我这样做。我必须在命令或命令中指定要执行的操作的起源/主控。谢谢Jonathan。我以为我已经这么做了,但我想我还没有试过。这似乎就是我要找的。我能够成功地进行更新,而且我不仅提前了3次提交(在发帖时我还以为是1次提交)。使用rebase来推送开发代码看起来也是我需要向前推进的。进行了一些初步测试,情况看起来不错。非常感谢!不过我想澄清一下。是git-rebase-origin/master
,而不是短版本。我以前试过的短的git-rebase
,对我没有任何帮助。在那里添加“起源/大师”就是魔法发生的原因。再次感谢。对于当前版本的Git,您可以只说Git rebase
,手册上说:如果未指定
,则在branch..remote
和branch..merge
选项中配置的上游将被使用。我读到了,上游设置为master,但只是Git rebase
没有为我这样做。我必须在命令或命令中指定执行操作的原点/主控点。