我使用Git 来帮助委派项目的过程,该项目的代码库由不断增长的开发团队同时开发。它完成了我们需要它做的几乎所有事情,但是每一次经常出现一个特定的障碍,其解决方案逃脱了我:某些代码被踢出。
起初这个问题听起来相当通用,但我不知道如何“分类”这个问题,而且我不确定诊断它的最有效方法。但是,我可以通过快速播放来解释它。
播放逐播放
设置:我们有三个环境:A,B和C.每个环境都是中央存储库的克隆。
突然间,A的解决方案消失了。该功能再次被打破。我得到的印象是,A的新修正代码被错误地替换了。
问题#1:订购问题了吗?
我的印象是不同克隆推拉的顺序不应改变结果。我对么?或者我的问题与推动和拉动的顺序有关吗?
问题2:哪些工具可用于诊断此问题?
即使使用了 git diff 和GUI日志树视图,例如 gitk 或 TortoiseGit ,解决方案有时仍然不清楚。 Git套件中是否还有其他工具,它们表示代码如何移动,或者如何确定首选项?
答案 0 :(得分:1)
不,订单无关紧要。您的问题在于您忽略了如何您正在进行合并或解决冲突的详细信息。你不是在正确的时间提交需要它的东西,或者你不应该使用--force
,或者在某些时候意外地使用错误的回购,或类似的东西。
我建议您测试您的功能并在每个小步骤之间运行git status
和git log
,以确保提交的内容是您认为已提交的内容。 A的回购中的git reflog
是一个很好的资源,可以帮助您查看更改何时消失并将其恢复,但您需要缩小导致问题的确切步骤。
另外,如果我可以提出建议,如果你自己做了所有的git任务,那么你真的不需要一个单独的中央存储库,因为它只是添加了多余的步骤。如果B想要A的代码,它应该像直接从A到B的拉动一样简单。然后当B完成化妆品更改时,直接从B拉到其他人。每次到处都试图融合一切,每次都必然会让你迟早。