Git在实际的使用过程中会遇到很多实际问题,下面对这些问题做一一分析和解决。
目录:
1. no new change问题;
2. unpacker error问题;
3. 中文乱码(ls -all);
4. 中文乱码(git status);
1. 推送代码是出现以下问题:
! [remote rejected] master -> refs/for/master (no new changes)
问题分析:Git bash提示:no new changes表示没有新的提交。Gerrit根据commit id和changeId判断是否有新的提交,如果以上两者都是相同的,则Gerrit会拒绝提交。解决办法:git commit --amend生成新changeId。
2. 仍然是push代码时出现的问题:
! [remote rejected] HEAD -> refs/for/k26s/ld/a107c (n/a (unpacker error))
解决办法:
$ git push --no-thin origin HEAD:refs/for/k26s/ld/a107c
在push指令中,添加参数: --no-thin。
3. Windows平台下使用Git Bash显示中文出现乱码。
具体现象如下:
Administrator@ZHANGFENG /f/sptSrcGit/CarDoc (master)
$ ls
old_document ??????????????????
输入以下指令即可:
$ alias ls='ls --show-control-chars --color=auto'
4. Windows平台下使用Git Bash时,执行 git status 时显示中文乱码问题:
yaya@yaya-PC MINGW64 /d/GitWorkspace/AndroidDemos/HandlerDemo (master)
$ git st
On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
"346226260345273272346226207346234254346226207346241243.txt"
nothing added to commit but untracked files present (use "git add" to track)
解决办法为,输入如下指令:
git config --global core.quotepath false
5. Windows平台下,提交代码出现以下提示内容:
yaya@yaya-PC MINGW64 /d/GitWorkspace/OpenSourceProjects (master)
$ git add .
warning: LF will be replaced by CRLF in AndroidIoT/gradlew.
The file will have its original line endings in your working directory.
究其原因:Windows平台下使用回车和换行符(CRLF)作为结束标志,Linux/Mac以换行符作为结束标志(LF)。