2016-08-11 50 views
0

我想使用git checkout-index來從文件名中去掉當前前綴。如何使git checkout-index strip off前綴

例如,我坐在我的倉庫在目錄

repo/foo/bar/baz 

,並在該目錄中的一堆文件和目錄

./file1 
./dir1/file2 

我想這樣做的git結帳指數到一個目錄的/ tmp /巴茲讓我結束了

/tmp/baz/file1 
/tmp/baz/dir1/file2 

如果我做

git checkout-index --prefix=/tmp/baz/ 

然後我結束了

/tmp/baz/foo/bar/baz/file1 
/tmp/baz/foo/bar/baz/dir1/file2 

回答

0

未必是最好的解決辦法,但如果你做一個git checkout-index --temp <file>你可以只用.merge_file_XXX名稱的文件(從輸出捕獲名),然後你可以將它mv到你想要的位置並重新命名它,但是文件仍然保留在索引中(如果你想取消它,你可以重新設置它)。你可以把它包裝成一個腳本。

另一種方法可能是使用git ls-files --stage,它會列出所有的blob,你可以通過git顯示一個blob來獲取文件內容,並通過剝離該輸出上的路徑前綴來創建文件名,與git ls-files輸出中的sha相同)。再一次,一個腳本的東西。