1、git stash pop 显示 xxx already exists, no checkout
当我们先使用 git stash save -u '保存信息说明' 来储藏更改,然后拉取代码 git pull,如果你的本地修改有新建文件,远程也有新建文件,并且两者同名,此时应用储藏 git stash pop 就可能会报错: xxx already exists, no checkout。新建且冲突的文件会被提示。
此时我们可以使用:
git stash branch branchName
上面的命令是新建了一个分支。应该是基于最新的储藏处于的仓库版本来建立分支,并且该分支已经应用了最新的储藏(目前没有验证过)。当你将 stash 运用到最新版本的分支后发生了冲突时,这条命令会很有用。
新建了该分支后,就可以通过切换分支,合并分支来应用你的储藏了。
如果你需要指定某个 stash,你可以指明 stash id。
git stash branch <name> stash@{1}
或者你可以创建一个新分支,然后在新分支上删除已存在的文件,在新分支上应用储藏,然后在工作分支上合并新分支即可。
2、git commit 提示Please supply the message using either -m or -F option
使用不带参数的 git commit 命令有可能会提示Please supply the message using either -m or -F option,这是因为系统的默认的文本编辑器 vi 有问题,我们可以为 git 换一个默认的编辑器,比如 vim。输入下面命令:
git config --global core.editor "vim"
然后就可以使用 git commit 命令了。此时系统会弹出文本编辑框让你输入版本信息。
如果你不在文本编辑器中输入版本信息而是直接提交的话,此时的提交信息就会由系统自动生成,比如是:Merge branch xxx of xxx into xxx 之类的合并提示信息。