我完全愛git add -p
和git stash
但我偶爾有以下問題,這是由下面的命令序列重放:git的藏匿和編輯大塊
git add -p my_file
:然後我編輯大塊手動(使用e
),因爲那混帳表明分裂不適合我git stash --keep-index
:然後我做了一些測試,如果測試通過我不承諾git stash pop
:現在出現問題:文件my_file
現在被認爲是爲衝突,和git已經完全與我的編輯大塊搞砸,所以我必須編輯這個文件,刪除無用的合併標記,並運行之後git reset HEAD
git add my_file
我很困惑,因爲這隻有在手動編輯大塊時纔會發生。我不明白這應該如何改變。
要重現該問題:
touch newfile
git add newfile
git commit -m 'newfile'
- 文件
git add -p newfile
- 編輯的H中添加兩行UNK(
e
),除去在大塊線之一,然後退出GIT中添加(q
) git stash --keep-index
git stash pop
現在文件newfile
處於未合併狀態。再次請注意,問題僅出現在手動編輯的區塊中。如果不手動編輯任何大塊,上述命令無任何問題。
順便說一下,文件的前一狀態處於第三階段(git show :3:newfile
),並且以前的階段版本處於第二階段(git show :2:newfile
)。所以我可以通過一些git黑魔法設法將第二階段放在這個索引中,並且在工作回購的第三階段......但我不知道該怎麼做,所以我親自動手做。 :-(
我嘗試了幾次,但我無法用git 1.7.2.3版重現您的問題。你使用什麼版本? – 2010-10-31 15:46:00
我在Mac OS X上使用1.7.3.1版本。 – 2010-10-31 19:16:56
在'git add -p'中嘗試了不同的隨機編輯 - 並且它對我來說總是正常工作。順便說一句,我在Linux上。聽起來像一個錯誤 - 我會建議在git郵件列表上詢問,它們相當敏感。 – 2010-10-31 20:28:33