解決Windows下Git Shell編輯器問題

2021-06-26 11:55:54 字數 1676 閱讀 9767

最近開始重新用git shell,因為中途編輯器從之前的ultraedit換成了notepad++,所以在用git commit命令提交時,出現了乙個詭異的問題:

直接返回「aborting commit due to empty commit message.」

如圖示:

而之前的所有git commit,git shell首先會阻塞開啟ue,直到輸入log完成後儲存,然後commit成功。現在情況是開啟notepad++就直接返回這句話,我鬱悶不已,當時是加 -m 選項完成。

今晚突然發現問題了所在,記錄下。

首先我notepad++是沒有開啟的,然後今晚直接git commit提交,git shell居然阻塞住,並沒有出現前面說的返回「empty commit message」情況,然後我輸入log後儲存,順利commit。但是,當我再次進行commit時,又出現了上面的問題。。。

之後,我連續commit,冒出以下提示框:

此時,git shell的畫面:

之後,我點否。。再把整個notepad++給全關掉,再次git commit,又成功阻塞住,提交log後儲存,順利commit。

ok,根據提示框,想了下前後兩次的差異,把整個問題發現的過程縷一下:

(一):notepad++(未開)  ---->  第一次commit成功  ---->  關掉儲存的log檔案,但notepad++並未關閉  ---->  第二次commit失敗,log檔案未關閉;

(二):notepad++(開啟) ,log檔案未關閉  ---->  第三次commit失敗,出現提示框  ---->  關掉整個notepad++  ---->  第四次commit成功;

(中間的差異就是notepad++在commit時有沒有被開啟,如果沒被開啟,則commit成功,否則,返回「aborting commit due to empty commit message.」,commit失敗)

(在網上搜尋,發現了問題可能原因)

git commit的工作原理:

建立新的編輯器程序;

將commit_editmsg檔案傳遞給這個程序並阻塞等待程序結束;

讀取 commit_editmsg 檔案。

而我遇到的情況是,執行commit_editmsg檔案時並不一定會建立新的編輯器程序----比如上面已經在執行著的notepad++(可以只關閉頁面),這時git shell將會直接使用這個程序開啟 commit_editmsg 檔案(新增乙個頁面),這樣git就不會阻塞,直接返回empty log資訊,並commit失敗。

windows下解決埠衝突

apache雖然能執行,但是看見error.log中有httpd.exe could not reliably determine the server s fully qualified domain name,using 192.168.x.x for servername這個錯誤,想看看是否有...

windows下解決mysql忘記密碼

mysql有時候忘記密碼了怎麼辦?我給出案例和說明 一下就解決了 windows下的實際操作如下 1.關閉正在執行的mysql。2.開啟dos視窗,轉到mysql bin目錄。3.輸入mysqld skip grant tables回車。如果沒有出現提示資訊,那就對了。4.再開乙個dos視窗 因為剛...

windows下解決mysql忘記密碼

windows下解決mysql忘記密碼 mysql有時候忘記密碼了怎麼辦?我給出案例和說明 一下就解決了 windows下的實際操作如下 1.關閉正在執行的mysql。2.開啟dos視窗,轉到mysql bin目錄。3.輸入mysqld skip grant tables回車。如果沒有出現提示資訊,...