rm 问题
对git本地仓库,使用rm
而不是git rm
删除一个文件A后,直接commit 和 push,远程仓库仍然有A。此时已经不能再执行git rm
了,所以将删除动作添加到暂存区 git add .
,然后再commit 和 push
branch diverged
1 | # 执行 git status 的结果 |
这发生在多人可能操作 master 分支的时候,我自己的分支提交完了,切换到master分支,要执行合并时,出现这个问题,并不是文件冲突的问题。按如下方法解决:
如果不需要保留本地的修改,只要执行下面两步:1
2git fetch origin
git reset --hard origin/master
当我们在本地提交到远程仓库的时候,如果遇到上述问题,我们可以首先使用如下命令:1
2
3
4git rebase origin/master
git pull --rebase
# 提交到远程仓库
git push origin master
一次合并冲突的解决
我在自己的分支me
开发,主分支比我领先很多。有一次,我从git上下载了主分支的压缩包,然后手动覆盖了一部分文件以更新,这其实是不正确的操作。
第二天我先切换到主分支,更新到最新,然后切换到me
分支,提交到远程后,合并主分支,结果出现的冲突比我自己修改的多很多,因为把我昨天手动覆盖的那些也包括了。这种情况下,只能手动解决冲突,但是大部分文件一定是用主分支,如果一个个打开会很麻烦。
用VSCode打开工程,分支管理里会显示文件冲突,对使用主分支版本的文件,右键选择就可以,而且能同时选多个文件。解决完之后,选择暂存文件,之后可以push了。
fatal: 无法访问 The requested URL returned error: 502
需要关闭代理软件
remote: error: cannot lock ref ‘refs/heads/feat/user’: ‘refs/heads/feat/user/interface’ exists; cannot create ‘refs/heads/feat/user’
push到了不存在的分支
使用VS Code git push报错:Missing or invalid credentials.Error: connect ECONNREFUSED /run/user/1000/vscode-git-ec01
解决:文件 —> 首选项 —> 搜索 git.auth
,取消勾选后重新勾选,然后重启终端。