我通常在git
的分支'work'上使用这些命令git commit -a -m "blah! blah!"
git checkout master
git merge work
git checkout work
我听说过git别名。是否可以通过别名或其他方式将所有这些命令组合成一个。
答案 0 :(得分:0)
除了评论中发布的duplicate question的答案之外,您还可以在git-foo
的某处放置一个名为PATH
的可执行shell脚本(例如),并使用git foo <args>
好像是本机Git命令。
如果您的别名逻辑对于配置文件中的单行来说太长,这可能很有用。
例如:
$ cat > ~/bin/git-foo
#!/bin/bash
echo "Foo: $1"
^C
$ chmod +x ~/bin/git-foo
$ git foo test
Foo: test
答案 1 :(得分:0)
您还可以将以下内容添加到shell.rc文件中:
gmm将所有给定分支与您当前使用的分支合并
调用:gmm branch1-to-merged branch2-to-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
}
答案 2 :(得分:0)
正如@ 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
将您留在主分支中,但未解决合并冲突。
您可以在脚本中添加一些逻辑来检测 - 并且可能会解决 - 这些问题,但这听起来比运行四个独立命令要多得多的工作和努力!