我在编辑代码之前忘记了执行git pull
命令;当我提交新代码并尝试推送时,会出现错误信息“无法推送”。
此时,我执行了git pull
命令,然后出现了一些有冲突的文件。我解决了冲突,但是不知道接下来该怎么做。
我尝试再次执行git commit
命令,但出现了“无法提交,因为存在未合并的文件”的提示:
error: Committing is not possible because you have unmerged files.
我在编辑代码之前忘记了执行git pull
命令;当我提交新代码并尝试推送时,会出现错误信息“无法推送”。
此时,我执行了git pull
命令,然后出现了一些有冲突的文件。我解决了冲突,但是不知道接下来该怎么做。
我尝试再次执行git commit
命令,但出现了“无法提交,因为存在未合并的文件”的提示:
error: Committing is not possible because you have unmerged files.
如果您已经解决了冲突,需要使用 git add [文件名]
将文件添加到暂存区,然后像平常一样提交。
git add the_file
来提交合并。 - Brendon Muirgit status
命令,并发现一个文件显示为 both deleted
。WebStorm UI 没有显示问题,只是说无法提交合并。问题已解决! - Yuri Predborski你需要做两件事情。 首先,使用以下内容添加更改:
git add .
git stash
git checkout <some branch>
它应该解决你的问题,就像它解决了我的问题一样。
在从上游仓库中获取更改并使用 git stash pop
之前,可以使用 git stash
保存当前仓库,以便进行所需的提交。昨天我遇到了同样的问题,因此需要这样做。
这个错误发生在你解决了冲突,但是文件仍然需要添加到暂存区。使用git add .可以解决它。然后尝试提交和合并。
自 git 2.23(2019年8月)以来,您现在可以使用以下快捷方式: git restore --staged [文件路径]
。通过这个命令,您可以忽略一个有冲突的文件,而无需添加和删除它。
例如:
> git status
...
Unmerged paths:
(use "git add <file>..." to mark resolution)
both modified: file.ex
> git restore --staged file.ex
> git status
...
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: file.ex
git restore --staged .
或者 git restore --staged folder/
- macabeusgit rm
命令来删除。因此,从上面的错误来看。您需要执行的操作是恢复代码 (git revert HEAD
),然后执行git pull
,之后重新进行更改,再次执行git pull
,然后就可以成功提交或合并而不会出现任何错误了。