如果未提交更改,请阻止'git checkout'

时间:2013-09-20 14:22:04

标签: git

我经常度过一段不愉快的时光,因为我在更改分支之前检查了一个我应该提交的未提交更改但仍然忘记的分支。有没有办法使用一些git配置我可以让git checkout失败,如果有任何挂起的更改或新文件?我最近养成了在git status之前运行git checkout的习惯,但这很不方便,但仍然容易遗忘。我可以使用Bash别名以某种方式将这两个命令链接在一起,但是我希望我可以在.gitconfig或我在git config中看不到的标记中放入任何内容的手册页。

2 个答案:

答案 0 :(得分:6)

如果结帐会导致任何更改在其过程中丢失,则

git checkout将无法运行。因此,即使您将git checkout与脏工作目录一起使用,您的所有更改也会转移到另一个分支。而且您也可以切换回上一个分支以进入旧状态。

如果分支不兼容(例如,您修改的文件已被删除),git checkout应自动失败,以防止您丢失任何更改。

答案 1 :(得分:0)

你可以使用

git stash

将您未经注册的更改保存在堆栈中。

git stash list(查看你存储的存储内容)

git stash apply(应用存储在存储中的更改) 您甚至可以从藏匿处创建分支。有关更多信息,请参阅gitscm book(http://git-scm.com/book