在存储库中使用 mv/rm 等的 Git 版本

在存储库中使用 mv/rm 等的 Git 版本

Git 有自己的命令版本,例如mvrm我们在存储库中执行这些操作时确实应该使用它们。

然而,我确信我不是唯一一个经常忘记这样做的人。

在 git 存储库中操作时有什么方法可以自动使用这些工具吗?

bash我对、zsh或中的任何一个的答案感兴趣fish

答案1

git mv做了与平常不同的事情mv,并且非常不是直接替代品。

例如,它不会作用于未跟踪的文件:

touch foo
git mv foo bar

印刷

致命:不受版本控制,源=foo,目的地=bar

并拒绝移动文件。类似的情况也适用于其他命令。它们是工作的工具用git,因此使用这些命令而不是正常的操作系统版本是不是一个好主意。

Git 有自己的命令版本,例如 mv 和 rm,我们在存储库中执行这些操作时确实应该使用它们

你不应该。

答案2

我建议您使用一些 git rev-parse 的 myrm / mymv 脚本,以便检测您是否在存储库内并采取相应的行动。就像是 :

ingitr="$(git rev-parse --is-inside-work-tree 2>/dev/null)"
if [ "$ingitr" ]
then
    git rm $1 ( git mv $1 $2 )
else
    rm $1 ( mv $1 $2 )
fi

当然,这是一个起点。为了照顾各种选择,它当然应该得到增强。


然而我从评论中读到……你不应该想要这样。 (我会在压力下删除这个答案......;-)

相关内容