在 fish 函数中,我可以从某个目录运行命令而不改变它吗?
或者
push
我可以通过以某种方式指定其路径从存储库外部运行 git 命令( )吗?
我想做这样的事:
function backup
set BKDIR /flash/drive
rsync -av $HOME/important/ $BKDIR/important/
cd $HOME/git_repo
git push flash master
end
但我不想切换到其他目录。如果我能像使用 rsync 一样同步 git repo,那就太好了:通过指定源目录但不更改工作目录。
我想最后的办法就是在开始时记录当前目录,然后在结束时改回该目录。
答案1
git --git-dir /foo/bar/ rest-of-git-command
參考文獻:
--git-dir=<path>
设置存储库的路径。这也可以通过设置 GIT_DIR 环境变量来控制。它可以是绝对路径,也可以是当前工作目录的相对路径。
答案2
@RaGe 给出了正确答案。
针对鱼类的答案是使用 pushd 然后 popd
function backup
# ...
pushd $HOME/git_repo
git push flash master
popd
end