换行符问题
warning: LF will be replaced by CRLF in .gitignore. The file will have its original line endings in your working directory
Git可以在你提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF。用core.autocrlf来打开此项功能,如果是在Windows系统上,把它设置成true,这样当签出代码时,LF会被转换成CRLF: $ git config –global core.autocrlf true
Linux或Mac系统使用LF作为行结束符,因此你不想 Git 在签出文件时进行自动的转换;当一个以CRLF为行结束符的文件不小心被引入时你肯定想进行修正,把core.autocrlf设置成input来告诉 Git 在提交时把CRLF转换成LF,签出时不转换: $ git config –global core.autocrlf input
这样会在Windows系统上的签出文件中保留CRLF,会在Mac和Linux系统上,包括仓库中保留LF。
如果你是Windows程序员,且正在开发仅运行在Windows上的项目,可以设置false取消此功能,把回车符记录在库中: $ git config –global core.autocrlf false
clone和pull的区别
- clone——无中生有。原来本地是没有这个项目的,因此将完整的整个项目从仓库clone到本地
- pull——锦上添花。项目1.0已经在本地上存在,但其他人将项目修改成项目2.0并上传到远程仓库。因此你要做的是将远程仓库中别人做的修改部分pull到本地,让你本地的项目1.0成为项目2.0
git pull origin master
问题:
是因为两个根本不相干的 git 库, 一个是本地库, 一个是远端库, 然后本地要去推送到远端, 远端觉得这个本地库跟自己不相干, 所以告知无法合并
解决 加 --allow-unrelated-histories
配置别名git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
在版本库中删除某个文件的所有历史记录
不小心把账户密码上传到GitHub上
代码语言:javascript复制# 解决
1 git filter-branch -f --tree-filter 'rm -rf vendor/gems' HEAD
2 git push origin --force