我們工作在混合大小寫敏感/不敏感的環境(cywgin/linux),今天有人通過重命名文件,將S更改爲s,在我們的工作流程中造成了一次小破壞。這導致各分支機構出現各種有趣的合併問題,而且相當誠實,沒有人完全確定發生了什麼。如何更改cygwin下git中的文件大小寫?
在git中爲cygwin更改文件框的最合適的方法是什麼?我必須強調,我們是大小寫敏感的,通常這樣做的權利 - 如果它不是爲S.
我們工作在混合大小寫敏感/不敏感的環境(cywgin/linux),今天有人通過重命名文件,將S更改爲s,在我們的工作流程中造成了一次小破壞。這導致各分支機構出現各種有趣的合併問題,而且相當誠實,沒有人完全確定發生了什麼。如何更改cygwin下git中的文件大小寫?
在git中爲cygwin更改文件框的最合適的方法是什麼?我必須強調,我們是大小寫敏感的,通常這樣做的權利 - 如果它不是爲S.
已經想了幾分鐘,它似乎很可能會git-mv
你需要什麼。我確信它會嘗試重命名(這可能是不區分大小寫的操作系統上的禁用操作),然後將重命名添加到索引。這應該基於參數,而不是實際的文件 - 我在內建mv.c中看到rename_cache_entry_at(pos, dst);
。
我不知道這是否是你問或不是的一部分,但相對於你的分支混亂,這裏就是你可能要採取的一般方法:
對於其他誰發現這一點,您將需要使用「git mv -f」來強制重命名,因爲Cygwin會抱怨源和目標是相同的。 – 2010-06-07 15:31:52
我想指出,作爲一個後備你可以操縱在索引條目(臨時區域),從你就可以用「git的承諾」承諾在哪裏(而不是「git的承諾-a 「)與git update-index管道(低級別)命令。
我剛剛遇到類似這樣的問題,我只是想將目錄'腳本'重命名爲'腳本'。我目前在Cygwin工作,所以它不是那麼容易。如果我嘗試像在GNU/Linux中那樣做,我會得到一個錯誤。
$ git mv foo Foo
fatal: renaming foo failed: Invalid argument
不過,我意識到我可以繞過我以爲是什麼Windows的缺點,通過移動了兩次,第一次是不衝突的名稱,然後到實際所需的名稱。
$ git mv foo Foo2 && git mv Foo2 Foo
我藏了我的工作樹離開了這個變化,雖然這樣我就可以單獨的提交,並通過明顯,因爲現在我搬到無法從藏匿合併目錄下的文件沒有想到事情我樹。 : - /在我的情況下,這是一個小問題,雖然(爲了安全起見,我在嘗試這個之前先對樹進行了標記,但我總是可以用強有力的非版本化的方式來做它:P)。
你的cygwin能正確識別用戶的組名嗎?我可以不被認可的團體問題。你可能想要檢查這個chmod cannot change group permission on cygwin
我從來沒有在cygwin下使用git - git mv沒有正確檢查重命名嗎? – Cascabel 2009-10-20 19:07:26