1.世界观

增量
提交
确认后的某次修改(增量角度)
版本
某次提交后,当前的状态(全量角度)
面向增量
git关注每一次提交,而不关注版本
组合
分支
就是 若干提交 组成的集合
仓库
就是 若干分支 组成的集合
交流
分布式
git仓库每人一份,通过网络分享 提交

2.方法论

基本单元
文件的修改
流程化管理
修改 -> 暂存 -> 提交 (防止操作失误)
打草稿
通过分支,对提交进行不同的组合,表达一种可能性
合并分支
将2个分支中不同的提交组合到一起,并人为处理冲突

3.名词解释

提交
工作区
已经加入版本库的目录
暂存区
git add后,修改所在的区域
分支
git commit后,暂存区的修改 -> 该分支
HEAD
当前分支
master
默认创建的主干分支
仓库
本地仓库
工作区隐藏的.git目录
^
上1个版本(n个代表前n个版本)
远程仓库
关联 另一台电脑上的git仓库
origin
远程仓库默认的名字

1.初始化

创建仓库
git init
忽略文件
.gitignore文件(编辑/从网上下载)
删除缓存
git rm -rf --cached .(重新编辑.gitignore后,需要删除缓存、重新提交)
查看忽略文件的.gitignore规则
git check-ignore -v [文件名]

2.编辑内容

对比修改
git diff ./[目录名]/[文件名]
暂存修改
git add ./[目录名]/[文件名]
擦除暂存
git reset HEAD ./[目录名]/[文件名]

3.版本库

确认提交
git commit -m "注释"
修改注释
git commit --amend "注释"
检出文件
git checkout -- [文件名] (从版本库或暂存区)
回退版本
git reset --hard HEAD^
git reset --hard [版本号]

4.了解

查看状态
git status
查看日志
git log --graph
git log --pretty=oneline --abbrev-commit

5.打标签

绑定标签
git tag [标签名]
git tag [标签名] [commit id]
删除标签
git tag -d [标签名]
列出标签
git tag
查看标签
git show [标签名]

6.分支

创建分支
git branch [分支名]
切换分支
git checkout [分支名]
删除分支
git branch -d [分支名]
git branch -D [分支名] (没合并,强行删除)
查看分支
git branch
对比分支
git diff <分支1> <分支2> --stat (哪些文件不同)
合并分支
git merge --no-ff -m "注释" [分支名]

7.暂存

储藏暂存
git stash
查看储藏的暂存
git stash list
恢复暂存
git stash pop

8.远程仓库

克隆远程仓库
git clone [仓库地址]
关联远程仓库
git remote add origin [仓库地址]
修改仓库地址
git remote set-url origin [仓库地址]
删除远程仓库
git remote rm origin
列出远程仓库
git remote -v
查看远程仓库
git remote show origin

9.分享提交

首次推送并关联
push -u origin master
推送修改
git push origin [本地分支]
关联分支
git branch --set-upstream-to=origin/[远程分支] [本地分支]
拉取修改
git pull
推送标签
git push origin --tags
git push origin [标签名]
删除远程标签
git push origin :refs/tags/[标签名]

1.个人信息

账号
git config --global user.name "账号"
邮箱
git config --global user.email "邮箱"

2.身份认证

创建密钥对
ssh-keygen -t rsa -C "邮箱"
公钥填写到git服务器上
id_rsa.pub的内容

3.git服务器

推荐
Gitblit
原理
将服务器上的git仓库,映射到一个网络地址上

1.版本控制 帮助个人找回历史记录,帮助团队合并工作结果
2.git的主要工作是让 [修改] 在不同区域流转
3.参考Pro Git(中文版) http://git.oschina.net/progit/index.html
4.命令速记 http://www.runoob.com/manual/github-git-cheat-sheet.pdf
5.现成的ignore文件 https://github.com/github/gitignore/blob/master/VisualStudio.gitignore