与git团队一起工作对我来说还是很新。
我从“起源/主人”开始。
首先,我创建了一个新分支feature/26062018-offline-seite_ef
。
我添加了提交。
我签出了本地master
分支。
我合并到功能分支(git merge feature/26062018-offline-seite_ef
)
我已推送到远程服务器(git push origin feature/26062018-offline-seite_ef
)
我切换到Bitbucket并创建了请求请求。有一个ID为f0ebe14
的提交,但我期望0593ba83
。
然后我开发了其他东西:
首先,我创建了一个新分支feature/26062018-newsletter-popup_ef
。
我添加了提交。
我签出了本地master
分支。
我合并到功能分支(git merge feature/26062018-newsletter-popup_ef
)
我已推送到远程服务器(git push origin feature/26062018-newsletter-popup_ef
)
我切换到Bitbucket来创建拉取请求。但这就是我得到的:
我只希望提交7a52ce3b,但是我得到了这两个。
我的git工作流程出了什么问题?
答案 0 :(得分:2)
请注意最初在第3-5步中所做的操作:
我签出了本地
master
分支。我合并到功能分支(
git merge feature/26062018-offline-seite_ef
)我已推送到远程服务器(
git push origin feature/26062018-offline-seite_ef
)
您在第4步中所做的有时称为测试合并。您没有在任何地方推送此合并,但是您仍将其保存在存储库中。
然后,在第二组步骤中,进行以下操作:
创建了一个新分支
feature/26062018-newsletter-popup_ef
。
此特定名称此时已命名您进行的测试合并。您在第2步中所做的其他提交是通过此合并构建的,因此您最终推送的提交是:
feature/26062018-newsletter-popup_ef
之后所做的提交。因此,这些是您 second 拉取请求中的提交:第一个请求中的所有提交,加上合并,以及您想包含在其中的提交。
您应该做的是以下任何事情:
master
)上,或master
上合并测试,然后将其删除(例如,git reset --hard HEAD~1
);或这时您需要做的是撤消第二个拉动请求。您可以从第一次测试合并之前的最后一次提交开始创建 new 分支-请记住,此时,您的master
上有两个测试合并。此起点通常还将与origin/master
的提交哈希ID相匹配。现在您有了一个新的分支,可以使用git cherry-pick
将所需的提交复制到正确扩展图的新提交中,并根据需要测试合并这些提交,并推送这些提交。 (您可以通过使用git branch -m
重命名提交过多的分支来重用分支名称;请参见the documentation。)
答案 1 :(得分:1)
您从feature/26062018-newsletter-popup_ef
分支而不是feature/26062018_offline-seite_ef
分支创建了新分支master
。因此,您将从feature/26062018_offline-seite_ef
分支到分支的更改包括在内。
答案 2 :(得分:-1)
我通过执行git reset --hard 6d960676
(重置为原点/原版)来“解决”它。然后我完全重新开始,但是这次我在开发功能后完全没有与本地主人合并。我只是让分支打开并断开与本地主服务器的连接,然后进行推送。
每次创建新的功能分支之前,我都会先结帐母版,以便不在其他功能分支的顶部创建该分支。
问题:如果我想查看对该功能所做的更改,我必须每次都检出特定的分支,但是我无法合并这些功能。我一合并,便又开始混乱了……