git-常见问题解决方法(全)

git使用过程中遇到的问题解决方法记录

问题

(1) 更新代码后显示: unable to unlink old ‘xxx/xxx/xx’ : invalid argument
  • 问题原因:
    要提交或更新的文件被系统线程占用
  • 解决方法:
    把相关服务暂停,重新pull代码
(2) 更新代码后显示: the following untracked working tree files would be overwritten by checkout
  • 问题原因:
    本地代码仓库目录下有untracked文件
  • 解决方法:
    如果没有需要上库的代码,直接执行 git clean -d -fx删除untracked文件
(3) 更新代码后显示:

your local changes to the following files would be overwritten by merge…
please move or remove them before you merge

  • 问题原因:
    新修改的代码之前未提交,可能被服务器上的代码覆盖
  • 解决方法1:
    保留本地修改,然后add/commit/push到远程仓库
git stash					// 暂存本地修改
git pull origin master		// 拉取服务器最新代码
git stash pop				// 暂存代码恢复
  • 解决方法2:
    放弃本地修改 - 直接回退到上一版本,再拉取服务器最新代码
git reset --hard			// 可加上 commit id
git pull origin master
(4) git pull的时候认证失败:

remote: invalid Login or password
fatal: Authentication failed for ‘https://…’

  • 问题原因:
    账号密码失效或者是未登录
  • 解决方法:
    windows账户下,控制面板->用户帐户->windows凭据->修改git密码
(5) 版本回退git reset --hard {hash}后提示:

fatal: could not parse object “hash id”

  • 问题原因:
    切换到master分支后没有更新最新代码,git log不包含要reset的节点
  • 解决方法:
    更新代码后git log找到对应节点hash id再reset
(6) 切分支后提示文件有修改,撤销文件修改报错/对这个文件任何修改都报错

unlink of file ‘modifyFile.c’ failed. should I try again?(y/n)

  • 问题原因:
    与问题(1)一样,有线程占用要修改的文件,比如代码查看器等
  • 解决方法:
    把相关服务停了,重新处理
(7) git push后提示:

to https://.git
![rejected] localRepo->remoteRepo(fetch first)
error: failed to push some refs to ‘https://.git’
Updates were rejected because the remote contain work that you do not have locally.

  • 问题原因:
    本地仓库不包含远程仓库修改
  • 解决方法:
    更新远程分支并重新add/commit/push
(8) git push后提示:

to https://.git
![rejected] localRepo->remoteRepo(fetch first)
error: failed to push some refs to ‘https://.git’
Updates were rejected because the tip of your current branch is behind its remote couterpart. Integrate the remote changes bufore pushing again.

  • 问题原因:
    本地仓库节点落后于远程仓库节点,当然这可能是自己主动回退的
  • 解决方法:

方案1:强推。覆盖远程分支,这样会使远程修改丢失,多人同一分支写作的时候不可取

git push -u origin YOUR_BRANCH -f

方案2:重新拉取远程仓库merge再push。结合具体代码修改情况做处理

git pull origin YOUR_BRANCH
修改~
git push -u origin YOUR_BRANCH

方案3:直接推到新分支,原分支作废

git push origin YOUR_BRANCH_NEW

或者

git branch YOUR_BRANCH_NEW
git push -u origin YOUR_BRANCH_NEW
(9) git pull后提示

fatal: refuse to merge unrelated histories
在这里插入图片描述

  • 问题原因:
    出现这个问题的最主要原因还是在于本地仓库和远程仓库实际上是独立的两个仓库,如果一开始用git clone拷贝到本地就不存在这个问题。本地git init后尝试与远程分支关联
  • 解决方法:
    pull命令后加 --allow-unrelated-histories 来解决,合并两个独立启动仓库的历史
git pull origin master --allow-unrelated-histories
(10) git checkout后提示:

error: cannot stat ‘file…’: Filename too long

  • 问题原因:
    如提示,文件名过长无法checkout。git 可以创建4096长度的文件名,然而在windows最多是260,因为git用了旧版本的windows api,导致出现这种情况。
  • 解决方法:
git config --global core.longpaths true 	// 去除文件名长度限制
(11) git pull后撤销:
  • 问题原因:
    主干分支当前跑不过等原因
  • 解决方法:
git reflog YOUR_BRANCH					// 查看当前分支操作记录
git reset --hard YOUR_BRANCH@{1}		// 回退到上一节点,拉取master之前
(12) git checkout filename后报错:

error: pathspec did not match any files known to git

  • 问题原因:
    git checkout filename回退未添加到缓存区的文件,但是对未track的文件不生效。git checkout未track文件git以为是切分支
  • 解决方法:
    更新如果不需要该文件,直接删除
rm filename

2020.06.11

Git是一个非常流行的版本控制系统,但有时候在使用中会出现错误。下面是一些常见的Git错误代码以及解决办法: 1. 错误代码:fatal: refusing to merge unrelated histories 解决办法:在执行git pull命令时添加--allow-unrelated-histories参数,即git pull origin master --allow-unrelated-histories 2. 错误代码:error: failed to push some refs to 'git@github.com:XXX/XXX.git' 解决办法:先执行git pull命令更新本地代码,再执行git push命令推送代码 3. 错误代码:fatal: not a git repository (or any of the parent directories): .git 解决办法:进入正确的git仓库目录 4. 错误代码:fatal: unable to access 'https://github.com/XXX/XXX.git/': OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443 解决办法:检查网络连接,或者将https改为ssh协议,即git@github.com:XXX/XXX.git 5. 错误代码:error: Your local changes to the following files would be overwritten by merge 解决办法:先执行git stash命令,将本地修改保存起来,再执行git pull命令更新代码,最后执行git stash pop命令恢复本地修改 6. 错误代码:fatal: the remote end hung up unexpectedly 解决办法:检查网络连接,或者将git缓存设置为最大值,即git config --global http.postBuffer 524288000 7. 错误代码:error: pathspec 'XXX' did not match any file(s) known to git 解决办法:检查输入的文件名是否正确,或者执行git add命令添加文件 这些是常见的Git错误代码和解决办法,希望能对你有所帮助。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值