[英]Git Alias to chain add, commit, pull, push?
我感兴趣的是创建一个别名,添加所有文件,提交消息,拉动,如果有任何冲突停止并显示冲突文件列表,否则推。
我已经找到了列出冲突文件的别名( git config --global alias.conflicts "diff --name-only --diff-filter=U"
),但我不知道如何集成其余的命令。
甚至可以用这种格式创建一个if
语句吗?
伪代码(多行可读性):
git config --global alias.commitall '!func(){ git add -A && git commit -am "$1" &&
git pull && <conflict detection and possible die of command> &&
git push; }; func'
无需在别名中添加冲突检查。 如果在git pull
上检测到冲突,则它会自动echo
有冲突和停止的文件。 这允许别名减少到以下(多行以便于阅读):
git config --global alias.commitall '!func(){ git add . && git commit -aqm "$1" &&
git pull -q --no-progress && git push -q; }; func'
我添加了-q
参数来阻止调用回显正常的bumpf,但这是首选项。
用法:
git commitall "message goes here"
我认为if
药水看起来像这样
if [[ -n $(git diff --name-only --diff-filter=U) ]]; then
git diff --name-only --diff-filter=U
else
git push
fi
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.