即使当前分支有未提交的更改,也可以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配置为始终失败,只要当前分支有未提交的更改,只是为了使合并更安全。
答案 0 :(得分:0)
我的第一个想法是声明一个Git别名来覆盖merge
命令,并在执行操作之前检查工作目录和索引的状态。
事实证明,用Git别名覆盖现有的Git命令是不可能的(有关详细信息,请参阅this question),但您可以定义一个shell级别别。
为了简单起见,可能最好定义一个名为safemerge
的别名。您还可以定义一个额外的别名,以便轻松检测干净状态。
在.gitconfig
:
isclean = !(git status --porcelain | grep . && exit 1 || exit 0)
safemerge = !git isclean && git-merge
现在,当您进行合并时,您可以运行git safemerge
,如果您有未提交的更改,则不会进行合并。