的Git版本的Windows「無標籤文件」迴應:2.14.2.2的Git從「git的差異」命令
每當我上運行的倉庫git diff
我迎接響應No tags file
。我曾嘗試在多個存儲庫,多個控制檯(Cmd,PowerShell,MINGW64,Visual Studio命令提示符)上運行該命令,並且都具有相同的響應。
奇怪的是,git log
命令也將失敗。但是,許多其他命令也可以使用,例如git status
,git pull
等。它似乎只有log
和diff
。
我已經完全卸載Git和重新安裝。重新啓動我的系統。試圖直接引用git.exe
(這產生完全相同的響應)。沒有任何工作,我沒有在其他地方看到這個錯誤。我將我的用戶配置與同事的配置進行了比較,它們是相同的。
該命令的一些部分執行正確的,因爲如果我提供兩個提交散列和我故意破一個時,收到的響應是:
好像另一個程序可以是劫持git diff
命令。我相信這是因爲我不確定「無標籤文件」甚至是可能的Git響應。不知道還有什麼。
爲了讓事情變得更加令人困惑 - 我的最終目標是在msbuild
的範圍內運行git diff
,並且它執行正確。現在,我可以對此感到滿意,但我需要稍微修改diff
命令,並且每次運行完整版本都不會高效,也不容易排除故障。構建腳本中有一項任務運行Exec
命令,並且在執行diff
時沒有問題。我也能夠在SourceTree中執行Diff Against Current
,據我所知,在幕後運行git diff
。
任何幫助將非常感激。
::編輯::
各種命令:
git diff HEAD~1 HEAD
git diff master~1 master
git diff <commit-hash-1> <commit-hash-2>
git log HEAD~1..HEAD
git log master~1..master
git log <commit-hash-1>..<commit-hash-2>
輸出:
的命令中的每一個上面返回相同No tags file
響應,在所有我的回購。
貓頭:
cd .git
cat HEAD
ls -R refs
輸出:
新回購:
mkdir testrepo
cd testrepo
git init
echo "file1" > file1.txt
git add .
git commit -m "initial commit of file1.txt"
echo "Hi there!" > file2.txt
git add .
git commit -m "added file2.txt"
git log
git diff HEAD~1 HEAD
輸出:
混帳配置-e:
混帳配置--global -e:
::編輯2 ::
我卸載所有我的差異/源代碼控制工具(SourceTree,Git,SVN,WinMer ge,KDiff)。安裝了Git的便攜版本。打開CMD到回購站,放入git.exe便攜式的完整路徑,它仍然返回No tags file
響應。
我也回顧了我的所有路徑變量:git,vim,ming,mintty和其他任何似乎有嫌疑但沒有找到的東西。
我在執行所有步驟後重新啓動,但問題仍然存在。
::編輯3 ::
我有我的筆記本電腦不同的用戶,切換到用戶和git diff
正常工作,因此顯然有一些與我的主要用戶是相互矛盾的。將繼續查看我的User
目錄中的問題。
您是否嘗試過'git的差異HEAD'? –
@jrap在對您的編輯進行了一點思考後 - 我很好奇您的工具如何進行差異或日誌記錄。你有什麼目錄安裝git,並且是那些使用同一個目錄的工具?這幾乎就像他們正在使用一個不同的。你可能想嘗試安裝Git擴展,看看它是否可以做差異 - 我知道它使用已安裝的Git文件夾 - 事實上,你必須將其指向該文件夾(通常)。 – LightCC
當搜索到「無標籤文件」消息時,第一個結果是「vi」。我不明白爲什麼'git'會在運行'git diff'或'git log'的時候嘗試執行'vi',可能是因爲你的系統被配置爲使用'vi'作爲傳呼機? – LeGEC