我感兴趣的是创建一个别名,添加所有文件,提交消息,拉动,如果有任何冲突停止并显示冲突文件列表,否则推。
我已找到列出冲突文件(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'
答案 0 :(得分:6)
无需在别名中添加冲突检查。如果在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"
答案 1 :(得分:2)
我认为if
药水看起来像这样
if [[ -n $(git diff --name-only --diff-filter=U) ]]; then
git diff --name-only --diff-filter=U
else
git push
fi