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不上去
liuwenrong@build56:~/zs_1.0/vendor/coolyota/app/CY_Log_Reporter$ git push origin HEAD:refs/for/coolyota_msm8953_int
Counting objects: 1, done.
Writing objects: 100% (1/1), 284 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
error: unpack failed: error Missing tree 8bbdf2c1e7f8d53d62459978c86b15d22800d898
fatal: Unpack error, check server log
To ssh://liuwenrong@172.16.7.25:29418/COOLYOTA/vendor/coolyota/app/CY_Log_Reporter
! [remote rejected] HEAD -> refs/for/coolyota_msm8953_int (n/a (unpacker error))
error: failed to push some refs to 'ssh://liuwenrong@172.16.7.25:29418/COOLYOTA/vendor/coolyota/app/CY_Log_Reporter'
原因: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换行符问题
CR回车 LF换行Windows/Dos CRLF \r\n
Linux/Unix LF \n
MacOS CR \r
一、AutoCRLF
#提交时转换为LF,检出时转换为CRLF
git config --global core.autocrlf true
#提交时转换为LF,检出时不转换
git config --global core.autocrlf input
#提交检出均不转换
git config --global core.autocrlf false
二、SafeCRLF
#拒绝提交包含混合换行符的文件
git config --global core.safecrlf true
#允许提交包含混合换行符的文件
git config --global core.safecrlf false
#提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn
input 会导致文件变成LF,一些Windows下文件可能有问题如:.bat .cmd文件
git log 中文乱码
git config --global i18n.commitencoding utf-8
git config --global i18n.logoutputencoding utf-8
export LESSCHARSET=utf-8
提交或rebase时,非文件文件(apk,jar等)出错,无法创建对象
git version2.13.3
git version2.13.3
fatal: update_ref failed for ref 'HEAD': cannot update ref 'HEAD': trying to write ref 'HEAD'
with nonexistent object a98587ab1f88c40d5c56f9ca2cc5738bf13fc0a4
with nonexistent object a98587ab1f88c40d5c56f9ca2cc5738bf13fc0a4
error: unpack failed: error Missing tree 1d63382111cc83922ea48ff0f8f57d40c93ed69d
fatal: Unpack error, check server log
git push --no-thin coolyota HEAD:refs/for/coolyota_msm8953_int
实际上禁止了“thin pack transfer”优化。
--thin
--no-thin
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.
猜测是包含二进制文件导致如: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
fatal: Could not read from remote repository.
ssh -T -v git@github.com
Reading configuration data /etc/ssh/ssh_config
0 条评论
下一页