标签: git-alias

GitConfig:shell命令配置错误

我正在尝试设置别名,因为我有很多。

出于某种原因,这是行不通的。任何的想法?

[alias]
t = "!git log --decorate --oneline | egrep '^[0-9a-f]+ \(tag: ' | sed -r 's/^.+tag: ([^ ]+)[,\)].+$/\1/g'"
Run Code Online (Sandbox Code Playgroud)

命令本身可以正常工作:

$ git log --decorate --oneline | egrep '^[0-9a-f]+ \(tag: ' | sed -r 's/^.+tag: ([^ ]+)[,\)].+$/\1/g'
1.0.0
0.9.0
...
$ git t
fatal: bad config file line 28 in /Users/alanschneider/.gitconfig
Run Code Online (Sandbox Code Playgroud)

git git-config git-alias

3
推荐指数
1
解决办法
924
查看次数

用于在后台启动 gitk 和 git gui 的 git 别名

好吧,我尝试了无数种变化:

git config --global alias.gg '!gitk --all &; git gui &'
Run Code Online (Sandbox Code Playgroud)

但它们不起作用或者只显示 gitk,如下所示:

[alias]
    gg = !gitk --all& ; git gui&
Run Code Online (Sandbox Code Playgroud)

git git-bash git-alias

3
推荐指数
1
解决办法
1075
查看次数

同时为 `git push -u origin $BRANCH_NAME` 和 `git push` 设置一个更快的别名

当我想在已有上游分支的分支上推送更改时,这git push就是我所需要的。但是当当前没有上游分支时,我必须输入git push -u $BRANCH_NAME.

我一直在创建新分支(对于我处理的每一项功能,所以大约每两个小时左右创建一个)。我有时也会犯错别字。它变得令人恼火。如何创建一个会自动解析为git pushgit push -u $BRANCH_NAME且不需要我输入分支名称的别名?

git git-push git-alias

3
推荐指数
1
解决办法
1750
查看次数

使用输入参数设置 git 别名

Git 别名可以使用git config --global --unset alias.<badalias>.
我想让生活变得更轻松,并能够使用以下命令删除 git 别名 git rmalias <badalias>
我对这个别名的尝试是:

git config --global alias.rmalias '!git config --global --unset alias.'
Run Code Online (Sandbox Code Playgroud)

我在这里遇到的问题是

error: key does not contain variable name: alias.
Run Code Online (Sandbox Code Playgroud)

因为命令现在显示为 git config --global --unset alias. badalias.

如何定义别名以便将额外的参数放在正确的位置?

git git-alias

3
推荐指数
1
解决办法
2172
查看次数

获取运行git别名的路径

当通过Git别名运行外部命令时,它将从存储库的rood目录运行(.git /通常位于该目录中).可以通过以下方式检查:

$ cd /some/path/inside/repo
$ echo $(git -c alias.root='!pwd' root)
Run Code Online (Sandbox Code Playgroud)

现在,有没有办法获得别名运行的确切路径?`


在XY问题的情况下,这就是我正在做的事情:我想要一个启动shell函数的别名,它反过来运行几个Git命令,比如ls-files.它应该只在它被调用的路径中工作,所以它应该知道它.

如果我只是运行该函数,它运行良好,因为它不会更改路径并在其调用的位置运行.但我想要更多的原生行为.我现在拥有的是什么

git-add-specificname -opt -opt2 --long-option -- path1 path2
Run Code Online (Sandbox Code Playgroud)

我想要的是

git add-specificname -opt -opt2 --long-option -- path1 path2
Run Code Online (Sandbox Code Playgroud)

不允许在Git中使用别名参数,因此没有机会 git add specificname...

git shell git-alias

2
推荐指数
1
解决办法
652
查看次数

Git别名:如何将当前目录传递给shell命令?

我在Windows下使用git bash,我想制作一个git alias命令,其概念上是这样的:

[alias]
    assume_unchanged_below = "!git ls-files -z $dir | xargs -0 git update-index --assume-unchanged"
Run Code Online (Sandbox Code Playgroud)

其中$dir扩展到git assume_unchanged_below执行的bash shell中的当前工作目录.

即如果我进入C:\somedir\somesubdir并执行,git assume_unchanged_below我会希望它就像我打字一样git ls-files -z C:\somedir\somesubdir | xargs -0 git update-index --assume-unchanged

似乎可以通过获取当前目录git rev-parse --show-prefix.我也知道可以使用匿名函数传递参数,但我无法将这两个概念结合起来以获得我想要的行为.

例如,如果我这样做:

[alias]
    assume_unchanged_below = "!f() { \
       git ls-files -z $1 | xargs -0 git update-index --assume-unchanged; \
    }; f"
Run Code Online (Sandbox Code Playgroud)

然后我可以输入

git assume_unchanged_below `git rev-parse --show-prefix`
Run Code Online (Sandbox Code Playgroud)

它的行为与预期一致($1正确扩展到当前工作目录).

但是,我不想手动传递git rev-parse --show-prefix给别名,我希望它自动推断,这样我只需要输入

git assume_unchanged_below …
Run Code Online (Sandbox Code Playgroud)

git alias working-directory git-bash git-alias

2
推荐指数
1
解决办法
392
查看次数

在另一个 git 命令中使用 git 命令

因此,我尝试将更改从本地分支推送到具有相同名称的远程分支。我正在尝试做这样的事情。

git push origin "git rev-parse --abbrev-ref HEAD"
Run Code Online (Sandbox Code Playgroud)

引号内的命令返回当前签出分支的名称。我不确定这是否可能。

本质上,我正在构建一个可以为我添加、提交和推送的别名,它看起来像这样:

git config --global alias.fire '!f() {
   git add -A && git commit -m "$1" && git push origin "git rev-parse --abbrev-ref HEAD"; 
}; f'
Run Code Online (Sandbox Code Playgroud)

现在,我只是试图获取当前签出的分支的名称并在另一个命令中使用它。有人有任何建议或不同的方法吗?谢谢

编辑:我正在使用Windows

git git-alias

2
推荐指数
1
解决办法
1315
查看次数

我如何编写一个以字符串作为参数的 git 别名

我想为以下项目编写一个 git 别名:

git log --all --grep='Big boi'
Run Code Online (Sandbox Code Playgroud)

到目前为止我所拥有的是:

[alias]
    search = "!f() { str=${@}; echo $str; git log --all --grep=$str; }; f"
Run Code Online (Sandbox Code Playgroud)

这与字符串完美匹配,但给出了错误,我似乎无法弄清楚如何将字符串传递给 grep 标志。

$ user in ~/src/repo on master ? git search 'Big boi'
Big boi
fatal: ambiguous argument 'boi': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Run Code Online (Sandbox Code Playgroud)

如果有任何不同,我正在使用 zsh 。. .

git zsh git-alias git-grep

2
推荐指数
1
解决办法
198
查看次数

在Git别名中使用反引号命令执行

这是一个演示我的问题的简单示例.如果我做:

git commit -m "`date --utc`"
Run Code Online (Sandbox Code Playgroud)

它执行date --utc,并将结果放在提交消息中.

但是,当我将它别名为testcomit时:

git config --global alias.testcommit 'commit -m "`date --utc`"'
Run Code Online (Sandbox Code Playgroud)

执行git testcommit不执行该`date --utc`部分,而是将其逐字地放在提交消息中.

那么,如何让这个别名执行date --utc

git msysgit backticks git-bash git-alias

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

未知的交换机'm'与git别名提交

在我的.gitconfig中,我有以下别名:

c = add -A && git commit -m
Run Code Online (Sandbox Code Playgroud)

我们的想法是添加所有更改并提交它们.但是,我没有成功,因为Git给了我这个消息error: unknown switch 'm'.

git git-config git-alias

0
推荐指数
1
解决办法
2670
查看次数

更改 git 命令,例如 git push 像 gp 或其他简写形式

现在我使用ubntu 17.10。

例如如何更改 git 命令

  • git add .命令如ga,
  • git commit命令就像gc
  • git push科曼斯·利杰·gp

其他示例,例如 $ git add 命令,例如 $ ga

当我输入 ga 时,它就像 git add 一样工作

git git-alias

0
推荐指数
1
解决办法
2174
查看次数