我目前正在使用 git 邁出第一步。你能告訴我以下情況是否可能嗎?
讓我們想象一個很少需要的舊版本軟體的分支。假設它指向提交 6c0508c3e。現在,一些開發人員洗掉了該分支。第一個問題:不跟蹤對分支的更改。所以我無法檢測出是誰做的。
問題1:這是正確的嗎?我真的不能檢測到誰洗掉了分支嗎?
但至少提交仍然存在(只是不再可達)。因此,仍然可以使用提交的哈希 (6c0508c3e) 檢索代碼。但是一段時間后,git 垃圾回收器檢測到提交不可達,實際上會洗掉提交 6c0508c3e。
然后,幾年后,其他一些開發人員想要修補舊版本。但是分行不見了。并且沒有辦法檢索代碼,因為 GC 洗掉了它。
問題2:這也可能嗎?
uj5u.com熱心網友回復:
請記住,Git 是關于分布式版本控制的。
您控制您的存盤庫。我有自己的存盤庫;你不控制這個。你真的不能。
如果您不想洗掉名稱,以免丟失提交哈希 ID,只需不要洗掉名稱,您就不會丟失提交哈希 ID。他們是你的名字。根據您的突發奇想,他們會為您跟蹤提交。它們不是我的名字——我不能接觸你的存盤庫——所以我不能影響你存盤庫中的副本。
基本上就是這樣。保持對您想要控制的部分的控制。一旦你不再關心,就交出控制權。
uj5u.com熱心網友回復:
從我得到的陳述來看,這兩個問題的答案都是“是”。
通常,源代碼控制系統給你兩個非常基本的承諾:“一旦你的代碼到達存盤庫,它總是可以恢復這個確切的狀態。你總是能夠跟蹤誰改變了這個狀態。”
Git 違反了這些承諾:
- 您無法可靠地恢復某個時間點。
- 一個狀態甚至可以永遠丟失。
- 你甚至無法可靠地追蹤是誰做的。
公認的答案似乎是:“小心你所做的事情。”
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/491544.html
標籤:混帐
