5
我剛剛發現,我的一個測試文件缺少約20行的頂部。如何在git中刪除某個文件的某個部分?
我最近一直在試圖掌握VIM,所以我想我設法在沒有我的情況下刪除這些行,然後將它提交到存儲庫。
現在的問題是,什麼是最好的方法來找出發生這種情況?如何判斷何時被刪除?
我剛剛發現,我的一個測試文件缺少約20行的頂部。如何在git中刪除某個文件的某個部分?
我最近一直在試圖掌握VIM,所以我想我設法在沒有我的情況下刪除這些行,然後將它提交到存儲庫。
現在的問題是,什麼是最好的方法來找出發生這種情況?如何判斷何時被刪除?
找到這些地方存在行修訂R,然後用
git blame --reverse $R..HEAD <file>
這會告訴你誰刪除了他們。
如果你不能找到這樣的修改,但你還記得一個字符串(說「test_database」)包含在短缺行,你可以使用鎬頭功能搜索涉及該字符串提交:
git log -Stest_database <file>
其實,「git blame --reverse」不會告訴你是誰直接刪除了這些行。它會告訴您線路存在的最後修訂版本。那麼你如何找到實際上刪除了該行的有罪修訂?這是我如何解決這個問題的方法:從'git blame --reverse'輸出中修改LR,然後執行:'git log --reverse --ancestry-path $ LR..HEAD',然後第一個條目是候選人,將其命名爲C.然後使用'git show $ C'來檢查,如果它不是你要找的,就用git blame重新開始,用C替換R。 –
jbyler
2013-11-14 18:13:23