2017-02-23 70 views
0

這是我的問題,有人做了一個合併操作(可能),導致一些提交在我的項目(在VSO中)的git存儲庫中被忽略。有人可以告訴我,爲什麼會發生這種情況,它會發生什麼?爲什麼有些提交會被忽略?

我的項目只有一個分支 '開發' 在VSO,下面是爲了

歷史

A-> B-> C-> D-> E-> F-「G

B, C,F由UserA提交,F爲合併操作(選中,此提交不包含任何更改),D,E由其他一些用戶提交,提交B,C,F和D,E之間沒有代碼衝突。因爲所有更改都在完全不同的文件中。這裏是問題,當拉最新的代碼時,提交A,B,C,F,G代碼變化出現在本地磁盤上,但是D,E沒有。

回答

0

@Alex Cube,它看起來像是F或G重寫了D和E的變化。這通常發生在用戶不使用預期的Git工作流時,並且在處理代碼或提交代碼之前並未提交所有更改。

enter image description here

你應該abale通過查看D-> F或D-> G中的差異,看看哪些提交覆蓋更改驗證這一點。

+0

這不是這種情況。在VSO文件(在D中改變)的歷史中,有一個過濾器選項,如果我選擇'Simple history(default)',則提交D和E不在列表中,但是如果我選擇'Full hisotry',那麼存在名單。這些文件的頭(最新)版本是否可能重置爲舊版本? –

+0

只有刻意的用戶操作和「推力」... –

0

對於你的解決方法,它通常是由以下情況造成的: 另一個開發人員在一個分支上工作(我們稱它爲temp),然後它合併到develop分支中。

A---B---C-------F---G develop 
     \ /
      D---E   temp 

當您將更改拉到本地時,請選擇開發分支 - >查看歷史記錄。如果選擇顯示第一個父只,所以你會發現歷史發展的分支爲:

A---B---C-------F---G develop 

enter image description here