Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows自定义git命令_Windows_Git - Fatal编程技术网

Windows自定义git命令

Windows自定义git命令,windows,git,Windows,Git,假设我需要一个新的git命令gitnew,它生成一个新分支,该分支与origin/master是最新的 是否有一种方法可以使此脚本在powershell的Windows上的所有存储库中都可用 编辑:为了澄清我想要的是git脚本而不是powershell函数。我提到powershell的唯一原因是我没有使用git bash。创建一个包含以下命令的批处理文件: git branch %1 origin/master git checkout %1 将其保存为C:\Scripts\new branc

假设我需要一个新的git命令gitnew,它生成一个新分支,该分支与origin/master是最新的

是否有一种方法可以使此脚本在powershell的Windows上的所有存储库中都可用


编辑:为了澄清我想要的是git脚本而不是powershell函数。我提到powershell的唯一原因是我没有使用git bash。

创建一个包含以下命令的批处理文件:

git branch %1 origin/master
git checkout %1
将其保存为
C:\Scripts\new branch.cmd
。(我从未使用过PowerShell,我不知道它的规则。但是,使用旧的Windows命令提示符,它应该也能工作)

通过运行以下命令测试批处理文件是否按预期工作:

C:\Scripts\new-branch.cmd test1
它应该输出以下内容:

Branch test1 set up to track remote branch master from origin by rebasing.
Switched to branch 'test1'
Your branch is up-to-date with 'origin/master'.
如果不需要新分支来跟踪远程分支,那么只需将
--no track
添加到
git branch
命令中即可

如果一切顺利,则运行:

git config --global alias.new "!C:/Scripts/new-branch.cmd"
这使得
Git
别名
new
可用于所有存储库中的Windows配置文件。如果只在一个存储库中需要它,请删除
--global
,并在当前目录位于需要它的存储库中时运行该命令

将其用作:

git new test2

您可以使用使用git签出的git别名

git config--global alias.new“checkout origin/master-b”

然后,它将被用作git new\u分支

(这相当于
git checkout origin/master-b new_branch

请参见。我尝试了该命令,但当我查看文档时,没有找到与我的表单完全匹配的语法。(最接近的是
git checkout[-q][-f][-m][-b |-b |-orphant][


注意:@axiac,我可能使用了
!git
,因为它不会造成伤害,而且我可能需要执行多个命令来解决问题,但在完成时没有将其删除。

您可以使用运行批处理文件的别名。这将对您有很大帮助。这一点都没有帮助。我想使用所述的
git new
运行它,您可以使用c我不想做这样的别名。我也不想做一个骇人的powershell函数,我想在windows上做一个git脚本。好吧,这只是一个建议。这不完全是我想做的,但确实做了我想做的。谢谢!顺便说一句,它是%1而不是$1。你是对的。我写了它并在Linux上测试了:-)现在更新了答案。您可以创建一个别名
git config--global alias.new'!git签出源/主-b'
。您可以这样使用:
git new\u branch
。请注意-我尝试了这个,但它不起作用。原来我是用cmd来设置别名的,文件路径需要用双引号括起来。我相信双引号也适用于Powershell,因此这将改进答案。