一、版本控制系统VCS
vcs最基本功能就是在文件的修改历程中保留修改历史,可以方便地撤销之前对文件的修改操作。
版本控制、主动提交、中央仓库这三个要素构成了版本控制系统。
1. 分布式版本控制系统
分布式和中央式的区别在于,分布式VCS除了中央仓库之外还有本地仓库。
2. 简单上手
git clone url localProjecName // 可以后接自定义本地项目名
git log // 查看提交状态
git status // 查看工作目录当前状态
git add filename // 跟踪 untracked 文件
git add . // 所有改动全部放进暂存区
// add 添加的是文件改动,而不是文件名;如果add之后再修改会发现既在暂存区又在untracked
git commit // 提交暂存区文件,文件修改后需要先add,才能commit
git pull // 拉取更新内容
3. 进阶
- HEAD : 表示当前commit的引用
-
git branch feature1 // 创建分支
git checkout feature // head指向新的分支
git checkout -b feature1/ // 与上两句等效
git branch -d feature1 // 删除分支,需要先切出该分支才能删除;
// 删除一个分支只是删除一个引用,并不会删除任何commit,不过如果一个commit
// 不在任何一个branch的路径上,那么在一定时间后,会被Git回收机制删除。
git push origin branch_name // 上传 branch_name 到远程仓库,
// 如果是master分支,只需要 git push
// git push 本质是上传branch_name 路径上的commit
// git merge branch1 // 合并分支;HEAD领先目标commit,do nothing
// head落后,直接fast forward 类似于 git pull
git log -p 查看详细历史
git log --stat 查看简要统计
git show 查看当前commit
git diff --staged 显示暂存区和上一条提交之间的不同(commit)
git diff 显示工作目录和暂存区的不同。(add)
git diff HEAD 上面两者相加;工作目录与上一条提交之间的不同