git使用用户手册
1、查看配置 git config -l
查看不同级别的config
2、git配置文件分类
--system 系统级
--global 全局
--local当前项目
注意:对于同一配置项,三个配置文件的优先级是1<2<3
3、设置用户名与邮箱(用户标识,必要)
git config --global user.name "gaozhen"
git config --global user.email 171853954@qq.com
4、添加或删除配置项
添加配置项
git config [--local|--global|--system] section.key value
删除配置项
git config [--local|--global|--system] --unset section.key
5、创建本地创库
git init # 在当前目录新建一个Git代码库
git init [project-name] # 新建一个目录,将其初始化为Git代码库
git clone [url] 克隆远程仓库
6、GIT文件操作
1、文件4种状态
Untracked:未跟踪,此文件在文件夹中,但并没有加入到git库,不参与版本控制.通过git add 状态变为Staged.
Unmodify:Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致
Modified:文件已修改, 仅仅是修改, 并没有进行其他的操作
Staged:Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified
2、查看文件状态
git status [filename] #查看指定文件状态
git status #查看所有文件状态
3、添加文件与目录
git add [file1] [file2] ... # 添加指定文件到暂存区
git add [dir] # 添加指定目录到暂存区,包括子目录
git add . # 添加当前目录的所有文件到暂存区
4、移除文件与目录
git rm --cached <file> #直接从暂存区删除文件,工作区则不做出改变
5、通过重写目录数移除add文件
#如果已经用add 命令把文件加入stage了,就先需要从stage中撤销
git reset HEAD <file>...
当执行 “git reset HEAD” 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
6、移除所有未跟踪文件
#移除所有未跟踪文件
#一般会加上参数-df,-d表示包含目录,-f表示强制清除。
git clean [options]
#只从stage中删除,保留物理文件
git rm --cached readme.txt
#不但从stage中删除,同时删除物理文件
git rm readme.txt
#把a.txt改名为b.txt #暂存区和工作区的文件都会修改
git mv a.txt b.txt
7、查看文件修改后的差异
git diff用于显示WorkSpace中的文件和暂存区文件的差异
---a表示修改之前的文件,+++b表示修改后的文件
8、比较暂存区和之前已经提交的文件
git diff --cached #比较暂存区的文件与之前已经提交过的文件
9、git diff HEAD~n #比较repo与工作空间中的文件差异
10、签出
11、忽略文件
在主目录下建立".gitignore"文件,此文件有如下规则:
#为注释
*.txt #忽略所有 .txt结尾的文件
!lib.txt #但lib.txt除外
/temp #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/ #忽略build/目录下的所有文件
doc/*.txt #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
12、提交
# 提交暂存区到仓库区
$ git commit -m [message]
# 提交暂存区的指定文件到仓库区
$ git commit [file1] [file2] ... -m [message]
# 提交工作区自上次commit之后的变化,直接到仓库区,跳过了add,对新文件无效
$ git commit -a
# 提交时显示所有diff信息
$ git commit -v
# 使用一次新的commit,替代上一次提交
# 如果代码没有任何新变化,则用来改写上一次commit的提交信息
$ git commit --amend -m [message]
# 重做上一次commit,并包括指定文件的新变化
$ git commit --amend [file1] [file2] ...
13、撤销本地仓库更新
git reset --hard HEAD^
git reset --hard HEAD~1
git reset --59cf9334cf957535cb328f22a1579b84db0911e5
1、查看配置 git config -l
查看不同级别的config
2、git配置文件分类
--system 系统级
--global 全局
--local当前项目
注意:对于同一配置项,三个配置文件的优先级是1<2<3
3、设置用户名与邮箱(用户标识,必要)
git config --global user.name "gaozhen"
git config --global user.email 171853954@qq.com
4、添加或删除配置项
添加配置项
git config [--local|--global|--system] section.key value
删除配置项
git config [--local|--global|--system] --unset section.key
5、创建本地创库
git init # 在当前目录新建一个Git代码库
git init [project-name] # 新建一个目录,将其初始化为Git代码库
git clone [url] 克隆远程仓库
6、GIT文件操作
1、文件4种状态
Untracked:未跟踪,此文件在文件夹中,但并没有加入到git库,不参与版本控制.通过git add 状态变为Staged.
Unmodify:Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致
Modified:文件已修改, 仅仅是修改, 并没有进行其他的操作
Staged:Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified
2、查看文件状态
git status [filename] #查看指定文件状态
git status #查看所有文件状态
3、添加文件与目录
git add [file1] [file2] ... # 添加指定文件到暂存区
git add [dir] # 添加指定目录到暂存区,包括子目录
git add . # 添加当前目录的所有文件到暂存区
4、移除文件与目录
git rm --cached <file> #直接从暂存区删除文件,工作区则不做出改变
5、通过重写目录数移除add文件
#如果已经用add 命令把文件加入stage了,就先需要从stage中撤销
git reset HEAD <file>...
当执行 “git reset HEAD” 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
6、移除所有未跟踪文件
#移除所有未跟踪文件
#一般会加上参数-df,-d表示包含目录,-f表示强制清除。
git clean [options]
#只从stage中删除,保留物理文件
git rm --cached readme.txt
#不但从stage中删除,同时删除物理文件
git rm readme.txt
#把a.txt改名为b.txt #暂存区和工作区的文件都会修改
git mv a.txt b.txt
7、查看文件修改后的差异
git diff用于显示WorkSpace中的文件和暂存区文件的差异
---a表示修改之前的文件,+++b表示修改后的文件
8、比较暂存区和之前已经提交的文件
git diff --cached #比较暂存区的文件与之前已经提交过的文件
9、git diff HEAD~n #比较repo与工作空间中的文件差异
10、签出
11、忽略文件
在主目录下建立".gitignore"文件,此文件有如下规则:
#为注释
*.txt #忽略所有 .txt结尾的文件
!lib.txt #但lib.txt除外
/temp #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/ #忽略build/目录下的所有文件
doc/*.txt #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
12、提交
# 提交暂存区到仓库区
$ git commit -m [message]
# 提交暂存区的指定文件到仓库区
$ git commit [file1] [file2] ... -m [message]
# 提交工作区自上次commit之后的变化,直接到仓库区,跳过了add,对新文件无效
$ git commit -a
# 提交时显示所有diff信息
$ git commit -v
# 使用一次新的commit,替代上一次提交
# 如果代码没有任何新变化,则用来改写上一次commit的提交信息
$ git commit --amend -m [message]
# 重做上一次commit,并包括指定文件的新变化
$ git commit --amend [file1] [file2] ...
13、撤销本地仓库更新
git reset --hard HEAD^
git reset --hard HEAD~1
git reset --59cf9334cf957535cb328f22a1579b84db0911e5