相关疑难解决方法(0)

git别名在错误的目录中运行

简介:通过git别名运行的命令的当前工作目录是错误的.

证明这一点的最简单方法是使用这样的git别名:

[alias]
    pwd = !pwd
Run Code Online (Sandbox Code Playgroud)

所以git pwd只是运行bash命令pwd.人们会认为这两个命令的输出是相同的.现在,让我们试试几次:

$ cd ~
$ pwd && git pwd
/home/limpchimp
/home/limpchimp    # great!
$ mkdir foo && cd foo && git init
Initialized empty Git repository in /home/limpchimp/foo/.git/
$ pwd && git pwd
/home/limpchimp/foo
/home/limpchimp/foo  # great!
$ mkdir bar && cd bar
$ pwd && git pwd
/home/limpchimp/foo/bar
/home/limpchimp/foo   # uuhhhhhhhh...?
Run Code Online (Sandbox Code Playgroud)

似乎git正在将当前工作目录更改为具有.git文件夹(如果存在)的第一个父目录.这是非常有问题的; 它搞砸了我编写的某些脚本,这些脚本意味着在特定的目录中运行,并且使我无法将某些东西用作git别名.有没有解决的办法?我该如何解决?

git directory

12
推荐指数
2
解决办法
1053
查看次数

在Windows中编写Git命令脚本

我有一些git命令,我想在限制性的Windows环境中自动化.我发现自己一遍又一遍地运行这些命令,在Git Bash中执行.

$ git cd "R:/my/directory/repo"
$ git pull
$ git checkout "MyBranch"
$ git merge "MyOtherBranch"
Run Code Online (Sandbox Code Playgroud)

$ git checkout "MyBranch"
$ git add .
$ git commit -m "My commit comments"
Run Code Online (Sandbox Code Playgroud)

我精通JScript,我知道它在我的限制性Windows环境中工作,所以我想要做的就是通过打开命令提示符并输入来开始我的一天

cscript.exe "MyGitRefreshScript.wsf" "MyBranch" "MyOtherBranch"
Run Code Online (Sandbox Code Playgroud)

然后根据需要,在一天的剩余时间里,我可以做到这一点,也可以使用

cscript.exe "MyGitCommitScript.wsf" "MyBranch" "My commit comments"
Run Code Online (Sandbox Code Playgroud)

然后我可以愉快地坐在那里,按下向上箭头,然后在我工作的那一整天运行那些.

我无法在我的机器上安装第三方应用程序或工具,因此我希望在.wsf文件中使用JScript来完成此任务.我也希望能像我现在一样在Git Bash中运行命令时看到输出消息.

就像是:

<job id="main">
    <script language="JScript">
        var sh = new ActiveXObject("WScript.Shell");
        sh.Run(Git.exe "SomeCommand" ?);

        //or

        var git = new ActiveXObject("Git");
        git.SomeCommand ???

        ...
Run Code Online (Sandbox Code Playgroud)

这是可能的,如果是的话,怎么样?是否有明确的替代方案,不涉及某些第三方工具安装?

谢谢

git scripting wsh jscript

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

git ×2

directory ×1

jscript ×1

scripting ×1

wsh ×1