Git结帐功能/短代码

时间:2017-02-17 11:16:47

标签: git

我正在尝试向我的全局gitconfig添加一个函数。

例如,我做了以下快捷方式。

com = checkout master
cod = checkout develop

现在我正在尝试制作一个简短的命令来检查功能&发布得更快。

想要我基本上想要创建的是以下

cof = checkout feature/

所以我可以运行以下命令

git cof feature-name

但是因为/和名称之间不应该有空格,所以它不起作用。否则,如果我之间没有空格,它也将无法工作(这是合乎逻辑的)

git coffeature-name

无论如何,我可以用类似的方式解决这个问题。

4 个答案:

答案 0 :(得分:2)

您可以通过在!前加上别名值来定义shell解释的别名。你的args仍然会被附加到完整的命令,但是你可以使用技巧来避免这种情况,而是做你自己的事情。有了我的shell,下面就可以了,但它比我想要的更神奇:

cof = !git checkout feature/$1; shift;

答案 1 :(得分:2)

我相信你要找的别名如下:

cof = "!f() { FEATURE=$1; shift; git checkout $@ feature/$FEATURE; }; f"

这为您提供了git checkout的所有功能,并提供了功能分支的简写。这允许您使用-b-B--orphan标志来创建新分支; --用于指定路径;等

不伦不类的速记说明

  • !:告诉git别名是shell的别名。
  • f():在括号内定义一个函数
  • f:在大括号执行函数
  • 之后

功能逻辑

  • FEATURE=$1; shift;:该函数接受第一个参数,将其赋值给变量,然后将其从参数列表中删除。
  • git checkout $@ feature/$FEATURE:将您传递的所有参数(第一个是功能名称除外)传递给git checkout,其参数的前缀为feature/

答案 2 :(得分:0)

另一种方法是添加一个名为:

的sjell脚本(甚至在Windows上)
Job.where('balance != 0').joins(:ledgers).where_last_ledger_balance_equals_0

(没有延期)

在其中,您可以编写所需的任何bash脚本:

git-cof

您可以将其称为#!/bin/bash git checkout feature/$1

这甚至可以在Windows上运行,并且可以使用命令git cof feature-name调用git-xxx中的任何$PATH/%PATH%脚本。

答案 3 :(得分:0)

经过一些研究,找到thisthis,基于Jan Krügers answer使用shell脚本。

对于您的别名,以下内容对我有用:

cof = "!bt() { git checkout feature/$1;}; bt"

编辑:你只想查看一个现有的分支,而不是创建一个新分支,对吗?否则,您必须添加-b