我通常使用 git 在分支“工作”上使用这些命令
git commit -a -m "blah! blah!"
git checkout master
git merge work
git checkout work
我听说过 git 别名。是否可以通过别名或其他方式将所有这些命令组合成一个。
我通常使用 git 在分支“工作”上使用这些命令
git commit -a -m "blah! blah!"
git checkout master
git merge work
git checkout work
我听说过 git 别名。是否可以通过别名或其他方式将所有这些命令组合成一个。
除了评论中发布的重复问题的答案外,您还可以git-foo
在您的某处放置一个名为(例如)的可执行 shell 脚本,并像使用本机 Git 命令一样PATH
访问它。git foo <args>
如果别名的逻辑对于配置文件中的单行来说太长,这可能很有用。
例如:
$ cat > ~/bin/git-foo
#!/bin/bash
echo "Foo: $1"
^C
$ chmod +x ~/bin/git-foo
$ git foo test
Foo: test
您还可以将以下内容添加到您的 shell.rc 文件中:
gmm 将所有给定的分支与您当前所在的分支合并
调用:gmm branch1-to-be-merged branch2-to-be-merged ...
gmm () {
src=`git branch --no-color | grep "*" | cut -f 2`
for i in $@
do
git checkout $i
git merge $src
done
git checkout $src
}
正如@Will-Vousden 所建议的那样,可以编写一个 shell 脚本来执行此操作。例如:
#!/bin/bash
git commit -a -m "$1"
git checkout master
git merge work
git checkout work
你会这样称呼:
$ git-commit.sh "Commit message in quotes"
但是,如果存在合并冲突,这种方法(或您自己的别名)很容易失败:
$ git-commit.sh "Commit message in quotes"
[work 1a6e17f] Commit message in quotes
1 file changed, 1 insertion(+), 1 deletion(-)
Switched to branch 'master'
Auto-merging file.txt
CONFLICT (content): Merge conflict in file.txt
Automatic merge failed; fix conflicts and then commit the result.
file.txt: needs merge
error: you need to resolve your current index first
将您留在 master 分支中,并存在未解决的合并冲突。
您可能可以在脚本中添加一些逻辑来检测 - 并可能解决 - 此类问题,但这听起来比仅运行四个单独的命令要多得多的工作和努力!