在 fish 函数中从外部目录运行 git 命令

在 fish 函数中从外部目录运行 git 命令

在 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

相关内容