问题标签 [git-alias]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
133 浏览

git - 如何将自定义命名参数添加到 git 别名

目前我的 git 别名都必须依赖于以特定顺序传递的参数,使用 , 等访问$1它们$2

我想做的是

git sync --from="dev" --to="uat"

sync我想访问和的值的别名$from在哪里$to

这在某种程度上可能吗?

编辑 - 这不是如何在别名中使用带有命名参数的现有 git 命令的问题。我已经在使用该"sync = !sh -c '<bunch of commands here>'"格式来处理这个问题。我想为我的别名创建自己的自定义参数,所以我不必在我的脚本中使用$1, 。$2$3

0 投票
2 回答
196 浏览

git - 由于解析器错误,将更复杂的脚本添加为 Git 别名不起作用

在 Git 中,为了方便起见,我想添加一些全局别名。

命令

如文档中所述,工作正常。所以我尝试使用相同的语法,!在命令前面加上一个前缀,来运行外部的、更复杂的脚本:

如果我尝试使用语法添加这三个脚本

但是,它不起作用。结果始终是解析器错误。

我尝试了我能想象到的所有引用、取消引用、单引号和双引号的变体。我什至尝试直接将这些添加到.gitconfig文件中。这些都不起作用。

我错过了什么?如何修复这些脚本以便我可以将它们添加为别名?

0 投票
1 回答
858 浏览

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

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

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

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

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

编辑:我正在使用窗户

0 投票
2 回答
883 浏览

git - 我应该在 git 别名脚本中使用 `sh -c \"...\"` 还是 `"!f() {... ; }; f" ?

我一直在写带参数的 git 别名。我见过一些人用

和其他运行功能

似乎(一旦我开始使用 Bash ——这还不是我现在的位置)我认为做的任何事情都可以用任何一种形式来实现。

在什么情况下一种优于另一种?

除了可行性之外,是否存在处理差异?内存使用/速度/等?

0 投票
2 回答
5783 浏览

git - Git:在所有子模块上递归切换分支(结帐)

我正在开发一个包含submodules. 我在所有子模块(包括父模块)中都有同名的分支(比如masterdevelopment..),它们都跟踪它们相应的远程分支。

我想一次在所有子模块中签出相同的分支。换句话说,我想要的是,如果我切换到development父模块中的分支,所有子模块也应该切换到development分支,以便我的工作树与分支保持一致。

手动执行此操作是痛苦且重复的。有捷径吗?

0 投票
1 回答
32 浏览

git - git alias 不只记录我想要的分支

我创建了一个测试别名,在这个别名中,我希望能够只记录我所在的当前分支(请记住,这是日志的简化版本,最后一个有更多细节、颜色和很快)。

我的别名如下所示:

test = "!git log \"$(git rev-parse --abbrev-ref HEAD)\""

但是当我输入时,git test我得到了分支上的 2 个提交以及来自不同分支的所有先前提交(我不想要)。

任何想法?谢谢

0 投票
3 回答
1144 浏览

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

现在我使用 ubntu 17.10。

例如如何更改 git 命令

  • git add .命令之类ga的,
  • git commit命令之类的gc
  • git pushcommans lije`gp

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

当我输入 ga 时,它就像 git add

0 投票
1 回答
222 浏览

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

我想为以下内容写一个 git 别名:

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

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

如果有任何区别,我正在使用 zsh 。. .

0 投票
2 回答
1159 浏览

git - Git commit --amend 别名导致变基

我想知道为什么我的 git 别名被卡住以及它是如何导致变基的。

重现步骤:

git config --global alias.am "commit --amend"

我可以看到别名添加了:

git config --global -e

创建新的测试仓库:

> git init

> git am

Ctrl+ c, Ctrl+c

什么都没有发生,所以我必须手动关闭它。在这种情况下,预期的结果将是fatal: You have nothing to amend.,因为没有提交。但是发生的事情是 git 现在处于 rebase 模式:(master|AM/REBASE)

在带有提交的 repo 中运行时,预期结果是打开我的默认 git 编辑器,以便我可以编辑提交消息,但会发生上述相同的意外行为。

问题

为什么我的 git am 别名被卡住了,它是如何让我陷入变基的?

我试过的

我猜我的 git 别名在某种程度上有问题,它会导致它启动,git commit --amend但在某种程度上它无法启动编辑器。而且由于 git commit --amend 可能会在后台执行 rebase 以执行其操作,因此当我强制它中止时它会处于该状态吗?

但是,我尝试添加 --no-edit 无济于事,所以它似乎不是编辑器错误..

这个问题导致我不小心做了 agit rebase --abort并丢失了一些本地非分阶段的更改。

系统

我在使用 Git Bash 的 Windows 10 上。

我已经使用 emacs 和 notepad 作为我的默认 git 编辑器进行了测试,两者的结果相同。

0 投票
1 回答
330 浏览

bash - 如何在 git 别名中转义 {

我正在尝试编写日志别名

并像这样使用它:

但是传递给 git 的 commit-ish 是 @-1

我读 了这篇文章,但不明白如何使用它

谢谢波阿斯

更多信息,尝试过@vonc 建议

得到相同的结果,打开 GIT_TRACE

Git 在第一个参数周围添加 ''

但是!!!,如果我尝试过

Git 不会在 HEAD 周围添加 ''