问题标签 [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.
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
git - 由于解析器错误,将更复杂的脚本添加为 Git 别名不起作用
在 Git 中,为了方便起见,我想添加一些全局别名。
命令
如文档中所述,工作正常。所以我尝试使用相同的语法,!
在命令前面加上一个前缀,来运行外部的、更复杂的脚本:
如果我尝试使用语法添加这三个脚本
但是,它不起作用。结果始终是解析器错误。
我尝试了我能想象到的所有引用、取消引用、单引号和双引号的变体。我什至尝试直接将这些添加到.gitconfig
文件中。这些都不起作用。
我错过了什么?如何修复这些脚本以便我可以将它们添加为别名?
git - 在另一个 git 命令中使用 git 命令
因此,我尝试将更改从本地分支推送到具有相同名称的远程分支。我试图做这样的事情。
引号内的命令返回当前签出分支的名称。我不确定这是否可能。
本质上,我正在构建一个可以为我添加、提交和推送的别名,它看起来像这样:
现在,我只是试图获取当前签出分支的名称并在另一个命令中使用它。有人有任何建议或不同的方法吗?谢谢
编辑:我正在使用窗户
git - 我应该在 git 别名脚本中使用 `sh -c \"...\"` 还是 `"!f() {... ; }; f" ?
我一直在写带参数的 git 别名。我见过一些人用
和其他运行功能
似乎(一旦我开始使用 Bash ——这还不是我现在的位置)我认为做的任何事情都可以用任何一种形式来实现。
在什么情况下一种优于另一种?
除了可行性之外,是否存在处理差异?内存使用/速度/等?
git - Git:在所有子模块上递归切换分支(结帐)
我正在开发一个包含submodules
. 我在所有子模块(包括父模块)中都有同名的分支(比如master
,development
..),它们都跟踪它们相应的远程分支。
我想一次在所有子模块中签出相同的分支。换句话说,我想要的是,如果我切换到development
父模块中的分支,所有子模块也应该切换到development
分支,以便我的工作树与分支保持一致。
手动执行此操作是痛苦且重复的。有捷径吗?
git - git alias 不只记录我想要的分支
我创建了一个测试别名,在这个别名中,我希望能够只记录我所在的当前分支(请记住,这是日志的简化版本,最后一个有更多细节、颜色和很快)。
我的别名如下所示:
test = "!git log \"$(git rev-parse --abbrev-ref HEAD)\""
但是当我输入时,git test
我得到了分支上的 2 个提交以及来自不同分支的所有先前提交(我不想要)。
任何想法?谢谢
git - 更改 git 命令,例如 git push,如 gp 或其他简写形式
现在我使用 ubntu 17.10。
例如如何更改 git 命令
git add .
命令之类ga
的,git commit
命令之类的gc
git push
commans lije`gp
其他示例,例如 $ git add 命令,例如 $ ga
当我输入 ga 时,它就像 git add
git - 如何编写一个将字符串作为参数的 git 别名
我想为以下内容写一个 git 别名:
到目前为止,我所拥有的是:
这完美地回显了字符串但给出了错误,我似乎无法弄清楚如何将字符串传递给 grep 标志。
如果有任何区别,我正在使用 zsh 。. .
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 编辑器进行了测试,两者的结果相同。
bash - 如何在 git 别名中转义 {
我正在尝试编写日志别名
并像这样使用它:
但是传递给 git 的 commit-ish 是 @-1
我读 了这篇文章,但不明白如何使用它
谢谢波阿斯
更多信息,尝试过@vonc 建议
得到相同的结果,打开 GIT_TRACE
Git 在第一个参数周围添加 ''
但是!!!,如果我尝试过
Git 不会在 HEAD 周围添加 ''