当前位置:  开发笔记 > 开发工具 > 正文

Git:无法理解为什么分支(主题)提交/合并正在主分支上发生

如何解决《Git:无法理解为什么分支(主题)提交/合并正在主分支上发生》经验,为你挑选了2个好方法。

注意:我不确定是否已经提出过这个问题,因为我找不到适合我的背景的任何问题(或者我无法理解现有问题'背景')

这些天我很喜欢Git.特别是,主题分支.我正在开发一个小代码共享应用程序.我有(本地)分支,如"主","认证","书签","评论","鼻子"等...

我的(预期)工作流程如下所示:创建主题分支==>在主题分支上工作==>将文件提交到分支==>将主题分支更改合并到"主"分支.(后来删除主题分支)

我试过为几个分支做同样的事情.它工作正常.但后来当我检查git图时,即使我遵循相同的工作流程,所有机会都发生在"主人"上.没有树线分叉和会聚!它显示了一条带有多个提交的单线.我不知道为什么?我的印象是,我用HEAD指针搞砸了什么?

为了给出实用的观点,这是我的git图:http://github.com/none-da/zeshare/network

以下是我使用的命令:

>> git branch authentication_feature
>> git checkout authentication_feature
>> # I work with all the files here in "authentication_feature" branch
>> git commit -m "Authentication_feature is up" # commiting to the branch
>> git branch # just to confirm, which branch I am working on
>> git checkout master # trying to shift to master branch
>> git merge --no-commit authentication_feature # I merge in two steps. This is step 1
>> git status;git add; git commit -m "Authentication_feature" merged to "master". # This is the step 2
>> git log --graph --pretty=oneline # confirming the graph
>> git push origin master # pushing to the remote server(github)

小智.. 7

我敢打赌你正在寻找--no-ff开关git merge.默认情况下,如果没有介入提交,merge只会更新HEAD到新分支的提示.

如果你想离开合并提交以帮助分组你的提交,请传递--no-ff.



1> 小智..:

我敢打赌你正在寻找--no-ff开关git merge.默认情况下,如果没有介入提交,merge只会更新HEAD到新分支的提示.

如果你想离开合并提交以帮助分组你的提交,请传递--no-ff.



2> VonC..:

但后来当我检查git图时,即使我遵循相同的工作流程,所有机会都发生在"主人"上.没有树线分叉和会聚!

嗯......我确实看到了你的一些分支和合并.

您将在此页面中找到所有可能的合并方案
(当时编译 - 2007年底 - 现在SO贡献者:JakubNarębski)

您可能处于快进案例中,这可以解释为什么您的合并将使所有提交在完成后显示为高手:

2 /快进案例; 没有提交A,B,C,我们从以下情况开始:

   1---2---3               <-- trunk    <-- HEAD
            \
             \-a---b---c   <-- branch

2.1 /" git merge branch"

   1---2---3            /----- trunk    <-- HEAD
            \          v
             \-a---b---c   <-- branch

快进可以简单地移动行李箱的头部.
它不会创建提交,因此:

2.2 /" git merge --no-commit branch"

与2.1一样,因为快速转发不会创建提交.

因此,如果你没有提交master,因为你扩展了,然后在master上进行合并,你所做的只是重置主HEAD ......


分支无法显示的另一个原因是GitHub网络图形可视化工具的演示页面上描述的"待办事项列表效果" (这是您在此处引用的"git图")

但是你只看到每次提交一次.让它沉入一秒钟.
我发现很多编码人员习惯于集中式SCM,他们错过了我们的Graph Visualizer实际显示和连接不同的存储库这一事实.

如果我以root身份绘制图形,那么图表会显示一些我尚未进入我的仓库的待办事项列表.
当我想要了解社区在我们的回购分支中所做的事情时,我可以点击图表并立即看到其他人一直在做什么.
如果我要进行Bertg的更改,下次看到图表时,Bertg将不再显示,因为他将不再有任何我不提交的提交.
继续思考待办事项列表,你就会明白图表.

所以,如果是从其他回购分支合并(即你没有看到这些分支了,一旦他们被合并),这可能是从合并真真自己回购分支:合并后,你没有看到他们了你的图形.

但我知道,因为:

我不是该项目的所有者.

我可能想从你的任何分支机构中提取我的回购更改.

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有