git 操作笔记

来源:互联网 发布:完美root软件 编辑:程序博客网 时间:2024/06/08 00:55
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