Git 问题记录
1. git pull冲突1.1. 现象有时我们拉代码本地无改动也无提交但git pull时却报冲突1.2. 原因分析主要是因为本地分支上有的commit点在远端已不复存在或者commit点的哈希值变了一般是因为别处使用了git push -f1.3. 解决方法忽略本地修改强制拉取远程到本地git fetch --all git reset --hard origin/[branch name]2. git checkout -b报错2.1. 现象有时候在git中 checkout -b 出现如下报错$ git checkout -b test --track origin/master fatal: Cannot update paths and switch to branch test at the same time. Did you intend to checkout origin/master which can not be resolved as commit?2.2. 解决方法git remote -v git fetch origin git checkout -b3. .gitignore规则不生效的解决办法3.1. 现象使用 git 的时候在.gitignore中已经添加了某个文件或者文件夹但是使用git status还能看见该文件的修改提示3.2. 原因分析因为文件已经追加到索引中了3.3. 解决方法先把本地缓存删除改变成未跟踪状态然后再提交git rm -r --cached . #清除缓存 git add . #重新trace file git commit -m update .gitignore #提交和注释 git push origin yourBranchName # 可选如果需要同步到remote上的话4. git clone失败4.1. 现象error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function. fatal: The remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed4.2. 原因分析一般是由于网络问题在从github上下代码时较易发生这种情况4.3. 解决方法git clone https://github.com/Galloping-Vijay/laravel-wjfcms --depth 1 cd laravel-wjfcms git fetch --unshallowdepth用于指定克隆深度为1即表示只克隆最近一次commit.git shallow clonegit clone 默认会下载项目的完整历史版本如果你只关心最新版的代码而不关心之前的历史信息可以使用 git 的浅复制功能git clone --depth1 https://github.com/Galloping-Vijay/laravel-wjfcms-depth1 表示只下载最近一次的版本使用浅复制可以大大减少下载的数据量例如CodeIgniter 项目完整下载有近 100MiB 而使用浅复制只有 5MiB 多这样即使在恶劣的网络环境下也可以快速的获得代码。如果之后又想获取完整历史信息可以使用下面的命令git fetch --unshallow或者如果你只是想下载最新的代码看看你也可以直接从 GitHub 上下载打包好的 ZIP 文件这比浅复制更快因为它只包含了最新的代码文件而且是经过 ZIP 压缩的。但是很显然浅复制要更灵活一点。5. 不是代码仓5.1. 现象fatal: not a git repository: xxx5.2. 原因分析一般是拷贝一个代码库到另一个代码库目录中造成的。5.3. 解决方法如果是把internal_repo拷贝到external_repo中内需rm -rf internal_repo/.git参考文献git checkout -b 报错_water Wang-CSDN博客git 修改.gitignore后生效_water Wang-CSDN博客_git ignore 生效git pull时冲突的几种解决方式 - 雪山上的蒲公英 - 博客园error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function. | 臭大佬Git报错 Failed to connect to github.com port 443 解决方案-CSDN博客