[英]How to prevent git merge if current branch has uncommitted changes
即使当前分支具有未提交的更改,也可以进行git merge
。 例:
git checkout featureA
ls >> foo
git commit -am "added featureA"
git checkout dev
ls >> bar # current branch now has uncommitted changes
git merge featureA
我想知道是否有可能将git配置为始终失败,只要当前分支具有未提交的更改,只是为了使合并更安全。
我的第一个想法是声明一个Git别名以覆盖merge
命令,并在执行操作之前检查工作目录和索引的状态。
原来不可能用Git别名覆盖一个退出的Git命令(有关更多信息,请参阅此问题 ),但是您可以定义一个shell级别名。
为了简单safemerge
,也许最好定义一个名为safemerge
的别名。 您还可以定义其他别名,以使检测干净状态变得容易。
将这些定义为.gitconfig
别名:
isclean = !(git status --porcelain | grep . && exit 1 || exit 0)
safemerge = !git isclean && git-merge
现在,当您进行合并时,可以运行git safemerge
,如果您未提交更改,则合并不会发生。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.