初始化
给已存在项目添加版本管理,先进入项目目录,然后
|
|
若新建项目,可以:
|
|
git 配置参数
|
|
使用参数--global
给全部用到当前git二进制文件的项目设置环境变量,例如
|
|
查看当前git环境详细配置
|
|
查看不同级别的配置文件:
|
|
删除配置项
|
|
git设计思想
git有四个区域:
- 工作目录(working Directory):当前的工作环境
- 暂存区(Stage/Index):暂存代码改动
- 本地仓库(Local Repository)
- 远程git仓库(Remote Repository)
用一个更贴切的图片描述:
- Directory:使用Git管理的一个目录,也就是一个仓库,包含我们的工作空间和Git的管理空间。
- WorkSpace:需要通过Git进行版本控制的目录和文件,这些目录和文件组成了工作空间。
- .git:存放Git管理信息的目录,初始化仓库的时候自动创建。
- Index/Stage:暂存区,或者叫待提交更新区,在提交进入repo之前,我们可以把所有的更新放在暂存区。
- Local Repo:本地仓库,一个存放在本地的版本库;HEAD会只是当前的开发分支(branch)。
- Stash:隐藏,是一个工作状态保存栈,用于保存/恢复WorkSpace中的临时状态。
git管理文件的三种状态
- modified
- staged
- committed
注意下面这个图:
- 从上图可以看出fetch和pull的区别
- checkout的用法
所以checkout到底怎么用
当执行 “git checkout .” 或者 “git checkout —
当执行 “git checkout HEAD .” 或者 “git checkout HEAD
注意,从暂存区取消文件,变为unstage,使用git checkout –
直接从暂存区删除文件,git rm –cached xxx, 但不删除物理文件
git rm xxx 从暂存区中删除,并删除物理文件
移除所有未跟踪文件
|
|
其中-d
指的是包含目录,-f
表示强制删除
查看文件修改后的差异
|
|
git checkout
git checkout banch
git checkout branch -- filename
维持HEAD的指向不变。用branch所指向的提交中filename替换暂存区和工作区中相 应的文件。注意会将暂存区和工作区中的filename文件直接覆盖。
git commit
提交暂存区的指定文件到仓库区
$ git commit [file1] [file2] ... -m [message]
提交工作区自上次commit之后的变化,直接到仓库区,跳过了add,对新文件无效
$ git commit -a
提交时显示所有diff信息
$ git commit -v
使用一次新的commit,替代上一次提交
如果代码没有任何新变化,则用来改写上一次commit的提交信息
$ git commit --amend -m [message]
修改提交
git commit --amend