2015-07-20 81 views
0

我必須更改項目名稱和軟件包名稱,並且我想避免打破git版本控制(這正是管理層所說的:「只是創建一個新項目,我們不能成爲git的人質)」。如何告訴Git我將Eclipse重命名爲java包?

在Eclipse下很容易重構它(右鍵單擊 - 重構 - 重命名),但我該如何告訴git目錄名稱已更改?

$ cd src/com 
$ ls 
newname 
$ git mv oldname newname 
fatal: bad source, source=src/com/oldname, destination=src/com/newname/oldname 
$ git mv -f oldname newname 
fatal: bad source, source=src/com/oldname, destination=src/com/newname/oldname 
+0

是否真的如果混帳認爲這是一個新的文件夾有關係嗎?它會移除另一個。或者應該這樣做。 – Minegeek360

+0

你是什麼意思?重命名並提交。 –

+0

你爲什麼'git mv -f oldname newname'? git應該自動檢測到它 –

回答

2

只是做

git rm oldname 
git add newname 
git commit -m "renamed oldname -> newname" 

Git會自動檢測的重命名。

對於新的歷史應對看看這些:

+0

在我提交之前,我看到'renamed:oldname/Xyz.java - > newname/Xyz.java'這很鼓舞人心。但是現在,在提交之後,我嘗試查看更改的歷史記錄,結果已經消失:現在,GitLab和'git log'都只顯示1次提交。我現在如何查看文件更改的歷史記錄? – 18446744073709551615

+0

@ 18446744073709551615:查看更新的答案。 – eckes

+0

'git log --follow'工作,GitLab沒有。 OTOH,我很有可能永遠不需要挖掘這些古老的東西。無論如何,git會自動檢測重命名。 – 18446744073709551615

0

你不知道。

Git總是看文件不在文件夾(這就是爲什麼你沒有空目錄)。

如果你在eclipse中改變它,它應該已經可以。如果您看到移動,請檢查git狀態。

+0

我看到:'刪除:oldname /(很多)untracked:newname' – 18446744073709551615

+0

這很奇怪...你應該看到: 'renamed:/ oldPath/file - >/newPath/file' 但是,如果你有'untracked'使用'git add'讓git跟蹤文件 另外,你不能'git mv',因爲文件已經不存在了_ – szefuf

相關問題