通常情況下,當我做git blame $filename
,混帳顯示我的各種信息的每一行代碼,就像在一個文件分成幾個文件之後,git可以跟蹤作者和文件重命名嗎?
^3333b include/Spec1.php (First Last) function load($id) {
^5555b class/Spec.php (Some One) $id = ...
^6666b include/Spec1.php (First Last) $var = ...
也就是說,
- 其呈交它,
- 誰最後更新的路線,
- 有時甚至是該行所來自的文件名(當執行簡單的 單個文件重命名時)。
在我的情況下,我似乎已經打破了這個循環,並且git將我的更改註冊爲由我進行的單個全局更改。
也就是說,我有一個叫做Spec
的大類,其中包含多個產品系列的代碼。我將班級中的各種代碼重構爲幾個新班級。當我提交時,git會將這些文件檢測爲「新文件」。
這意味着我的新文件將以我的名義註冊爲由我創建的所有新文件,並且其中的行是「全新的」。
從根本上,我失去了:
- 原作者的每一行 - 儘管我剛剛搬到行從一個文件到另一個不是真的有創作它,Git把它作爲新的生產線不管。
- 用於容納每行代碼的舊文件名 - 當我做git責備時,git現在只將該行看作是存放在創建的新文件中。它丟失了該行被安置在之前的文件名的跟蹤。
有沒有辦法在做這個複雜的提交時不會失去它們?
不確定您的意思是「此時我有什麼能夠跟蹤更改並保留歷史記錄?」,但如果您擁有大型Spec類,那麼您將保留歷史記錄。你能指定你要找的更多嗎? – gravetii 2015-03-02 16:37:58
請參閱更新 - 我正在尋找保留「文件重命名」作爲歷史的一部分 – Dennis 2015-03-02 17:17:59
我剛纔重寫了這個問題,添加了「作者」 – Dennis 2015-03-02 17:29:53