1.关于版本控制系统
(1)本地版本控制系统
(2)集中化的版本控制系统
(3)分布式版本控制系统
2.Git的三种状态
每个项目都有一个 git 目录,它是 Git 用来保存元数据和对象数据库的地方。该目录非常重要,每次克隆镜像仓库的时候,实际拷贝的就是这个目录里面的数据。从项目中取出某个版本的所有文件和目录,用以开始后续工作的叫做工作目录。这些文件实际上都是从 git 目录中的压缩对象数据库中提取出来的,接下来就可以在工作目录中对这些文件进行编辑。所谓的暂存区域只不过是个简单的文件,一般都放在 git 目中。有时候人们会把这个文件叫做索引文件,不过标准说法还是叫暂存区域。
3.1.用户信息
git config --global user.name "John Doe" git config --global user.email johndoe@example.com
git config --global core.editor vim
git config --global merge.tool vimdiff
3.4.配置commit template
subject line
what happened
[ticket: X]
设置commit.template,当运行git commit时, Git 会在你的编辑器中显示以上的内容,设置commit.template如下:
git config --global commit.template $HOME/.gitmessage.txt
git commit
然后当你提交时,在编辑器中显示的提交信息如下:
subject line what happened [ticket: X] # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: lib/test.rb # ~ ~ ".git/COMMIT_EDITMSG" 14L, 297C
git config --global core.autocrlf true
Linux或Mac系统使用LF作为行结束符,因此你不想 Git 在签出文件时进行自动的转换;当一个以CRLF为行结束符的文件不小心被引入时你肯定想进行修正,把core.autocrlf设置成input来告诉 Git 在提交时把CRLF转换成LF,签出时不转换:
git config --global core.autocrlf input