git mv文件并在旧位置创建符号链接(需要shell命令)

问题描述:

我想在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

我会使用历史快捷键

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