Bash

在儲存庫中使用 Git 版本的 mv/rm 等

  • August 7, 2022

Git 有自己的命令版本,例如mv我們rm在儲存庫中執行這些操作時真正應該使用的命令版本。

但是,我確信我不是唯一經常忘記這樣做的人。

在 git 儲存庫中操作時,有什麼方法可以自動使用這些工具?

我對bash,zsh或中的任何一個的答案感興趣fish

我建議你有一些 git rev-parse 的 myrm / mymv 腳本,以便檢測你是否在 repo 內並採取相應的行動。就像是 :

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

當然,這是一個起點。為了照顧選項,它當然應該得到增強。


但是,我從評論中讀到……您不應該這樣。(我會在壓力下刪除這個答案…… ;-)

git mv做與正常不同的事情,mv並且在很大程度上不是替代品。

例如,它不會作用於未跟踪的文件:

touch foo
git mv foo bar

印刷

致命:不受版本控制,source=foo,destination=bar

並拒絕移動文件。類似的事情適用於其他命令。它們是使用 git的工具,因此使用這些命令而不是正常的作業系統版本不是一個好主意。

Git 有自己的命令版本,例如 mv 和 rm,我們在儲存庫中執行這些操作時確實應該使用它們

你不應該。

引用自:https://unix.stackexchange.com/questions/712748