已經運行以下命令:Git的變基顯示錯誤,搞砸了重訂基期日誌
git init
touch README
git add README
git commit -m "Initial Commit"
git branch b01_02_03
git checkout b01_02_03
echo "Data 1" >> f1 && git add f1 && git commit -m "Add 01"
echo "Data 2" >> f2 && git add f2 && git commit -m "Add 02"
echo "Data 3" >> f3 && git add f3 && git commit -m "Add 03"
git checkout master
git branch b04_05
git checkout b04_05
echo "Data 4" >> f4 && git add f4 && git commit -m "Add 04"
echo "Data 5" >> f5 && git add f5 && git commit -m "Add 05"
git checkout master
git merge --ff-only b01_02_03
git checkout b04_05
,形成如下測試樹:
* 8294414 (HEAD, b04_05) add 05
* 19f920f add 04
| * 3a2ca64 (master, b01_02_03) add 03
| * 49d1aca add 02
| * c8f6d30 add 01
|/
* 7f0ca8e initial commit
我跑
git rebase master
並獲取以下輸出。
First, rewinding head to replay your work on top of it...
Applying: add 04
/opt/swt/install/git-1.7.12.3/libexec/git-core/git-am: line 115: /home9/tclarke/git-puzzles-1/.git/rebase-apply/next: cannot overwrite existing file
/opt/swt/install/git-1.7.12.3/libexec/git-core/git-am: line 665: 1: cannot overwrite existing file
/opt/swt/install/git-1.7.12.3/libexec/git-core/git-am: line 666: 1: cannot overwrite existing file
/opt/swt/install/git-1.7.12.3/libexec/git-core/git-am: line 712: 1: cannot overwrite existing file
Applying: add 04
/opt/swt/install/git-1.7.12.3/libexec/git-core/git-am: line 115: /home9/tclarke/git-puzzles-1/.git/rebase-apply/next: cannot overwrite existing file
結果是:
* c88b1f0 (HEAD, b04_05) add 04
* 761c779 add 04
* 3a2ca64 (master, b01_02_03) add 03
* 49d1aca add 02
* c8f6d30 add 01
* 7f0ca8e initial commit
成功的底墊,但日誌搞砸了,登錄 「加05」 變爲與它的前身。這可以在不同的文件空間中的另一臺機器上重複,我已經創建了一個新的git存儲庫。我的鄰居對同一棵樹沒有同樣的問題。
有關如何解決此問題的任何建議?
你檢查過,這不僅僅是一個簡單的文件權限問題嗎? –
我很確定它就是這樣。怪異的位是有問題的文件:/home9/tclarke/git-puzzles-1/.git/rebase-apply/next似乎是由rebase本身創建和銷燬的,所以當我嘗試時它根本不存在並檢查其權限。 – deworde
你的umask設置了什麼?是否有可能取消自己對文件的寫入權限(例如,0222的umask)? – torek