一章&二章
- 版本控制系统可以分为集中式版本控制系统和分布式版本控制系统。
集中式版本控制系统 | 分布式版本控制系统 |
---|---|
版本库集中存放在中央服务器 | 为台PC机里都有完整的版本库 |
- 版本库→仓库 版本库中文件的各种操作都会被Git追踪,并可以在未来的某一个时间段被还原
- 获取Git仓库可以将尚未进行版本控制的本地目录转换为 Git 仓库,也可以从其它服务器克隆一个已存在的 Git 仓库
在已存在目录中初始化仓库 | 克隆现有的仓库 |
---|---|
git init git add <file> git commit -m <message> | git clone <url> [rename] |
- 文件的状态
Untracked 未跟踪 | Unmodify 未修改 | Modified 已修改 | Staged 暂存 |
---|---|---|---|
在文件夹中,但是没有被放入暂存区,不参与版本控制,通过git add 可以将状态变为Staged | Git已经知道的文件,自提交过后未修改过 | 提交后又修改了 | 执行git commit 则将修改同步到库中, 这时库中的文件和本地文件又变为一致,文件状态为Unmodify |
- 可以用
git status
来查看当前版本库里文件的状态。 git status -s
命令可以以更简洁的方式查看当前版本库里文件的状态。输出中有两栏,左栏指明了暂存区的状态,右栏指明了工作区的状态
??
新加 Untracked
A
新增到暂存区,Unmodify
M
已修改已暂存
_M
在工作区已修改但未暂存(_代表空格)
MM
文件已修改,暂存后又作了修改,因此该文件的修改中既有已暂存的部分,又有未暂存的部分git diff
命令可以查看尚未暂存的文件更新了哪些部分,而使用git diff --staged
命令可以将已暂存的文件与最后一次提交的文件进行对比。- 如果使用
git commit
会在设置的编译器里弹出以下开头的代码,可以使用git commit -m "说明文字"
来避免弹出文字
这里是空行用来输入此次提交的说明信息
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
git commit -a
可以在本次提交所有修改过的文件。git log
可以查看提交历史,当oneline
或format
与另一个 log 选项--graph
结合使用时,会用一些字符来形象的展示分支及合并历史。