该项目发生了奇怪的事情。
我们不了解的是,最初的提交(包含三个文件的提交)现在也位于“源”分支中。
所有推送到源代码的git reflog
C:\path>git reflog show awsOrigin/source
31325f0ea (awsOrigin/source) refs/remotes/awsOrigin/source@{0}: push: forced-update
1921667a4 (source) refs/remotes/awsOrigin/source@{1}: push: forced-update
8738f3c91 refs/remotes/awsOrigin/source@{2}: fetch: forced-update
9c89b3654 refs/remotes/awsOrigin/source@{3}: fetch: forced-update
提交31325f0ea是将源合并到功能部件中时的提交。我不明白为什么将其推送到远程源上。提交1921667a4是我们只更改一个文件的提交。
“提交三个文件”的Git reflog显示3个分支:awsOrigin / source,awsOrigin / feature和local feature
可能会发生什么? 我们使用Eclipse的Git透视图进行提交和推送
---编辑
这是发生的情况的图形表示 “初始化属性”是“三个文件提交” “通道版本10.0.0”是对某个文件进行了一次更改的文件,该文件是在源文件中进行的
答案 0 :(得分:1)
您添加的两个图形都被截断,以至于很难用它们做任何事情-图形中的图形缺少太多标签,因此没有上下文确定哪条线,而命令行中的某条截断了分支合并的关键时刻。
但是,我在命令行图上看到一些与您对您的同事认为他们所做的描述不符的事情:
8738
未显示在图表的左侧。在命令行视图中,我希望紫色线成为“源”分支,但似乎会有一个额外的(黄色)分支。e121
和1921
从这时开始都分支。我们无法确定当时分支的名称,因为git不会记录。3132
提交显示“源”已合并为“功能”,如所述。如果图形视图中的灰线/文本视图中的紫色线是“另一个功能”,那么最终发生的事情是有人将“功能”合并为“另一个功能”。如果执行此合并的人认为他们是从“源”中拉出的,那么大概在这一点上,“源”和“功能”是指向同一提交。
似乎发生了什么事,有人重置“源”分支以指向该提交;可能点击了错误的选项,并认为他们只是在结帐时切换了分支。这只是移动指针,所有分支都在git中。
由于git并不特别介意分支是在合并的左侧还是右侧(因此,可以有两个以上的父级)将“ source”指向该提交与执行合并相同反过来。即使您的客户端没有配置为始终强制使用,这也是一次有效的快进推送。