说我想要一个新的git命令,git new,它创建一个与origin / master同步的新分支。
我有没有办法制作这个脚本,并且可以在PowerShell的Windows上的所有存储库中使用它?
编辑:澄清我想要一个git脚本而不是一个powershell函数。我提到powershell的唯一原因是因为我不使用git bash。
答案 0 :(得分:9)
创建包含以下命令的批处理文件:
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
答案 1 :(得分:1)
您可以使用一个使用git checkout
的git 别名:
git config --globla alias.new 'checkout origin/master -b'
然后将其用作git new new_branch
。
(等同于git checkout origin/master -b new_branch
请参阅git docs for checkout。我尝试了命令并且它有效,但是当我查看文档时,我没有找到与我的表单完全匹配的语法。 (最近的是git checkout [-q] [-f] [-m] [[-b|-B|--orphan] <new_branch>] [<start_point>]
)
注意:@axiac,我可能已经使用了!git
,因为它没有受到伤害,我可能需要做多个命令来解决问题,并且当它没有被删除时我完成了。