Git常见问题_Aron
2019-07-11 17:03:07 0 举报
AI智能生成
Git常见的问题及解决方案
作者其他创作
大纲/内容
commit相关
amend
如何撤销 git commit --amend
如果只 amend 了一次, 那么直接用 git reset HEAD@{1} 就可以撤销这次 amend.
如果 amend 多次, 就参考 git reflog 进行撤销.
常见问题
CoolYota项目
push不上去
<div>liuwenrong@build56:~/zs_1.0/vendor/coolyota/app/CY_Log_Reporter$ git push origin HEAD:refs/for/coolyota_msm8953_int</div><div>Counting objects: 1, done.</div><div>Writing objects: 100% (1/1), 284 bytes | 0 bytes/s, done.</div><div>Total 1 (delta 0), reused 0 (delta 0)</div><div>error: unpack failed: error Missing tree 8bbdf2c1e7f8d53d62459978c86b15d22800d898</div><div>fatal: Unpack error, check server log</div><div>To ssh://liuwenrong@172.16.7.25:29418/COOLYOTA/vendor/coolyota/app/CY_Log_Reporter</div><div> ! [remote rejected] HEAD -> refs/for/coolyota_msm8953_int (n/a (unpacker error))</div><div>error: failed to push some refs to 'ssh://liuwenrong@172.16.7.25:29418/COOLYOTA/vendor/coolyota/app/CY_Log_Reporter'</div>
原因:int的临时分支 refs/for/..int上丢失了提交点,是和众思合并代码后int覆盖dev导致的
解决: push到dev,在服务器上cherry-pick到int上
git push --no-thin coolyota HEAD:refs/for/coolyota_msm8953_int
编码问题和换行符问题
Git中的AutoCRLF与SafeCRLF换行符问题
<div>CR回车 LF换行Windows/Dos CRLF \r\n</div><div>Linux/Unix LF \n</div><div>MacOS CR \r</div>
<div>一、AutoCRLF</div><div>#提交时转换为LF,检出时转换为CRLF</div><div>git config --global core.autocrlf true </div><div><br></div><div>#提交时转换为LF,检出时不转换</div><div>git config --global core.autocrlf input </div><div><br></div><div>#提交检出均不转换</div><div>git config --global core.autocrlf false</div>
<div>二、SafeCRLF</div><div><br></div><div>#拒绝提交包含混合换行符的文件</div><div>git config --global core.safecrlf true </div><div><br></div><div>#允许提交包含混合换行符的文件</div><div>git config --global core.safecrlf false </div><div><br></div><div>#提交包含混合换行符的文件时给出警告</div><div>git config --global core.safecrlf warn</div>
input 会导致文件变成LF,一些Windows下文件可能有问题如:.bat .cmd文件
git log 中文乱码
git config --global i18n.commitencoding utf-8<br>
git config --global i18n.logoutputencoding utf-8 <br>
export LESSCHARSET=utf-8
提交或rebase时,非文件文件(apk,jar等)出错,无法创建对象<br>git version2.13.3
<div>fatal: update_ref failed for ref 'HEAD': cannot update ref 'HEAD': trying to write ref 'HEAD' <br>with nonexistent object a98587ab1f88c40d5c56f9ca2cc5738bf13fc0a4</div>
<div>error: unpack failed: error Missing tree 1d63382111cc83922ea48ff0f8f57d40c93ed69d</div><div>fatal: Unpack error, check server log</div>
git push --no-thin coolyota HEAD:refs/for/coolyota_msm8953_int
实际上禁止了“thin pack transfer”优化。
<div>--thin</div><div>--no-thin</div><div>These options are passed to git-send-pack(1). A thin transfer significantly reduces the amount of sent data when the sender and receiver share many of the same objects in common. The default is --thin.</div>
猜测是包含二进制文件导致如:apk,jar包
想将几个本地提交合并成一个提交
git rebase -i HEAD~4
合并4个提交并进入Vim
git status慢
试试 git status -uno 会不会快一些。参见 man git-status
ssh问题
1. ssh_exchange_identification: read: Software caused connection abort<div>fatal: Could not read from remote repository.</div>
ssh -T -v git@github.com
Reading configuration data /etc/ssh/ssh_config
0 条评论
下一页