本文旨在记录项目团队研发过程中,遇到的基于git的版本管理相关问题及其解决方案
推送本地工程至远程库
先创建本地工程,本地提交后,再推送至远程如gitee.com。临时创建远程仓库。
- 添加远程仓库
git remote add origin git@gitee.com:liuyl162/gl24tq.git
- 同步-拉取远程文件
git pull -r origin master
- 设置远程关联
git push --set-upstream origin master
- 推送
git push
撤销本地修改
a.txt文件已经commit过存在HEAD版本。
撤销工作区中的修改恢复为暂存区内容用:git checkout -- a.txt
撤销暂存区中的修改恢复为版本库内容用:git reset HEAD -- a.txt
- 工作区文件被修改,未执行git add
- 直接将工作区文件恢复为暂存区文件: git checkout -- a.txt
- 修改后已经git add了,预恢复为HEAD版本
文件已经进入暂存区,预恢复为HEAD版本
git reset HEAD -- a.txt
git checkout -- a.txt
- git add后,又修改了
git checkout -- a.txt #将工作区文件恢复为暂存区版本
git reset HEAD -- a.txt #将暂存区恢复为HEAD版本
git checkout -- a.txt #将工作区恢复为暂存区版本=HEAD
Git中的换行符处理
由于linux和windows下对于一行的行尾不同,git在提交和检出时会有不同的处理方式,可以通过core.autocrlf配置项进行调整:git config --global core.autocrlf true
- true 在提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF。
- false 提交和检出时不进行自动转换
- input 在Windows系统上的签出文件中保留CRLF,会在Mac和Linux系统上,包括仓库中保留LF。