Git 使用的问题总结

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}

参考:https://stackoverflow.com/questions/10508903/why-cant-stash-be-applied-to-the-working-directory/10508919#10508919

或者你可以创建一个新分支,然后在新分支上删除已存在的文件,在新分支上应用储藏,然后在工作分支上合并新分支即可。

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 之类的合并提示信息。

原文地址:https://www.cnblogs.com/wenxuehai/p/11448320.html