首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git配置别名问题

Git配置别名问题
EN

Stack Overflow用户
提问于 2016-02-04 15:50:32
回答 3查看 75关注 0票数 0

我试图为我的“合并到暂存”工作流创建一个别名。

假设我已经完成了分支"dev/layout_fix“中的一个任务,并希望在完成完成后将其部署到暂存中。

这是我的方式:

  1. git checkout staging
  2. git merge dev/layout_fix --no-ff
  3. git push
  4. git checkout dev/layout_fix

现在我已经尝试过这样的方法:

[alias] branch-name = "!git rev-parse --abbrev-ref HEAD" stagify = "!git checkout staging && git merge $(git branch-name) --no-ff && git push && git checkout $(git branch-name)"

但是,由于结帐,别名分支名是“暂存”。

在签出暂存之前,是否可以在变量中写入当前分支名称?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-02-04 15:59:28

在签出暂存之前,是否有可能在变量中写入当前分支名称?

好的。因为您用!作为git别名的前缀,所以它们只是shell脚本。因此,您可以像对任何shell脚本一样将git命令的输出插入变量中,例如,如下所示:

代码语言:javascript
复制
[alias]
branch-name = "rev-parse --abbrev-ref HEAD"                             
mybranch = "!branch=$(git branch-name); echo my branch is: $branch"     

有了这个定义,我可以运行以下操作:

代码语言:javascript
复制
git mybranch

并得到:

代码语言:javascript
复制
my branch is: master

那应该足够让你走了。

票数 1
EN

Stack Overflow用户

发布于 2016-02-04 16:02:57

可以使用git describe --exact-match --all获取当前分支名称。

您可以编写脚本并将其部署到/usr/libexec/git,而不是别名。你只要把它放在那里,就叫它git-stagify。我是从记忆中写的,但我相信这是默认路径。您可以通过搜索git-pull所在的位置(使用破折号)、使用locate或您的发行版中可用的任何东西来找到它。这将给您带来bash脚本环境的全部好处,这种环境在使用别名时可能会丢失。

票数 0
EN

Stack Overflow用户

发布于 2016-02-04 16:11:44

完整的别名命令如下所示:

stagify = "!branch=$(git rev-parse --abbrev-ref HEAD) && git checkout staging && git merge $branch --no-ff && git push && git checkout $branch"

感谢@larsks的正确做法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35205492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档