2014-08-28 50 views
0

我想在git存儲庫中將文件從一個位置移動到另一個位置。但是,我希望程序仍然可以訪問舊位置的文件,因此我想在舊位置創建符號鏈接。git mv文件並在舊位置創建符號鏈接(需要shell命令)

現在我不想在shell中手動輸入兩個命令,例如「git mv oldfile newfile; ln -s newfile oldfile」。我需要兩次輸入文件,這可能會導致更多的拼寫錯誤。

我在linux中使用bash shell。我可以編寫自己的執行git-mv和ln命令的命令git-mv-keep嗎?我是bash的新手。

+1

你想在Git倉庫或只是在你的本地磁盤跟蹤的符號鏈接?如果只是在本地磁盤上,那麼這有什麼意義呢? – 2014-08-28 16:14:30

+0

我現在需要它在存儲庫中,然後在稍後所有工作正常並經過測試的時候,我想要刪除符號鏈接。 – mrsteve 2014-08-28 16:18:58

回答

2

我會使用歷史快捷鍵

git mv oldfile newfile 
ln -s !$ !:2 

或短的函數:

git-mv-link() { git mv "$1" "$2" && ln -s "$2" "$1"; } 
+0

然後,可以通過手動編輯'〜/ .gitconfig'來添加短函數作爲'git'的別名,並正確調用'git config ...'... - – twalberg 2014-08-28 16:22:27

+1

正如所寫,沒有。通過一些小調整,你可以創建一個git別名,然後使用'git mv-link old new',是的。 'mv-link =「!bash -c'git mv」$ 1「」$ 2「&& ln -s」$ 2「」$ 1「&& git添加」$ 1「' - 」'或者我認爲的東西。 – 2014-08-28 16:26:07

+0

或'mv-link ='! f(){git mv「$ 1」「$ 2」&& ln -s「$ 2」「$ 1」; } f'',這比較簡單一些...另外,它不會產生兩個子shell,像'! bash -c ...'確實...... – twalberg 2014-08-28 18:07:32

相關問題