2015-08-25 66 views
0

我正在處理一個包含具有相同文件名的多個文件的項目。我使用git來維護我的更改的本地版本。在升級修改後的文件之後,我注意到具有相同名稱的文件顯示爲狀態「R」,意味着將另一個文件替換爲另一個具有相同名稱但位於不同目錄樹中的文件。如何確保兩者都承諾而不被另一個人取代。我無法在任何git文檔中找到相關的幫助材料。 由於這是一個專有代碼,我只粘貼樣本目錄結構:Git提交多個同名文件的問題

M <Proj_Root_Folder>/<dirA>/<dirAA>/file1.h 
M <Proj_Root_Folder>/<dirA>/<dirAA>/file2.h 
M <Proj_Root_Folder>/<dirA>/<dirAA>/file3.h 
R <Proj_Root_Folder>/<dirB>/<dirBA>/file4.h -> <Proj_Root_Folder>/<dirA>/<dirAA>/file4.h 
+0

我想我現在已經明白了這個問題的根本原因。我所做的修改有兩種方法。一個是文件內容,另一個是文件名本身。但是,我觀察到有其他頭文件的內容和文件名已被更改。但是Git能夠正確識別和映射它們。至於上面的狀態日誌,'file4.h'內容及其名稱已更改,但生成的修改後的文件僅存在於同一文件夾中。現在的問題是不正確映射的可能原因是什麼,因爲它映射到具有相同文件名的其他目錄樹中的文件。 – Oldman

回答

0

在GIT中「R」是指「重命名」。 Git認爲///file4.h是一個從原來的位置移動過來的文件。很可能是因爲該文件看起來很勉強。

+0

感謝@Q鴨嘴獸,我之前使用'git status -s'命令,並認爲它試圖替換文件。 'git status'命令日誌顯示它正在重命名該文件。 – Oldman