繁体   English   中英

如果当前分支有未提交的更改,如何防止git合并

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM