1.git的配置信息
git的配置信息决定了 Git 在各个环节的具体工作方式和行为,一般来说,新手可以先不用管config信息,当需要的时候在进行配置即可。
git的配置信息存放于一下的三个文件内:
- /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。
- ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。
- 当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。
每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。
1.1编辑配置信息
方式一:使用vim打开config文件即可编辑
方式二:通过以下命令进行编辑,
- –global指的是编辑~/.gitconfig文件,
- user.name是config中的具体项目
$ git config --global user.name "runoob"
$ git config --global user.email test@runoob.com
1.2查看配置信息
方式一:使用vim打开config文件即可查看
方式二:使用如下命令进行查看
$ git config --list
2.git的工作流程
工作流程如上图所示,最简单的流程如下:
- 从资源库clone工作副本
- 本地/服务器修改工作副本, 并提交修改
- 本地/服务器推送到资源库
3.git工作区,暂存区和版本库
首先了解一下git工作区,暂存区和版本库的概念:
- 工作区:就是你在电脑里能看到的目录。
- 暂存区:.git/index文件
- 版本库:.git文件夹
上图的几点说明:
- “HEAD” 实际是指向 master 分支的一个"游标"。所以图示的命令中出现 HEAD 的地方可以用 master 来替换。
- objects 标识的区域为 Git 的对象库,实际位于 “.git/objects” 目录下,里面包含了创建的各种对象及内容。
上图中的git命令说明,可以理解为不同的git命令是在处理"工作区","暂存区"和"master"之间的关系,图中的命令说明如下:
-
git add <文件>
工作区修改后,暂存区的目录树更新,同时工作区的修改内容写入对象库的新对象中 -
git commit
将暂存区目录树更新到master -
git reset HEAD
暂存区目录树被master替换 -
git rm --cache <file>
直接从暂存区删除文件 -
git checkout . / git checkout -- <file>
使用暂存区文件替换工作区文件 -
git checkout HEAD . / git checkout HEAD <file>
使用master文件替换掉暂存区和工作区文件
4.git创建仓库
-
git init
初始化当前目录为git仓库 -
git clone <repo> <directory>
克隆git仓库到本地目录 -
git add .
将项目加入暂存区 -
git commit -m "初始化版本"
将项目同步到master
5.git基本操作
-
git init
初始化当前目录为git仓库 -
git clone <repo> <directory>
克隆git仓库到本地目录,会得到一个simplegit文件夹,此文件夹记录着该项目的全部记录 -
git status -s / git status
查看当前项目状态, 加参数-s会使结果更简明
??是没有加入到缓存区了
A是加入到缓存区
AM是加入到缓存区后有改动 -
git diff
查看修改的详细信息
4.1尚未缓存的改动:git diff
4.2查看已缓存的改动: git diff --cached
4.3查看已缓存的与未缓存的所有改动:git diff HEAD
4.4显示摘要而非整个 diff:git diff --stat -
git add .
将项目加入暂存区 -
git commit -m "comment"
将项目同步到master
Git 为你的每一个提交都记录你的名字与电子邮箱地址,所以第一步需要配置用户名和邮箱地址。
git config --global user.name 'runoob'
git config --global user.email test@runoob.com
-
git commit -am "comment"
直接加入缓存并提交 -
git reset HEAD file
取消已缓存的内容 -
git rm
git中删除文件,
如果文件已经加入缓存,使用git rm -f <file>
如果只需要删除缓存中的文件,使用git rm --cache <file>
递归删除文件夹,git rm -r <dir>
-
git mv
移动文件或者重命名文件
6.git分支管理
-
git branch (branchname)
创建分支命令
git branch -d (branchname)
删除分支 -
git checkout (branchname)
切换分支命令,不同分支下的文件可能不同
git checkout -b (branchname)
直接创建分支并切换到该分支下 -
git merge <分支名>
合并分支命令 -
git branch
查看本地分支
7.git查看提交历史
git log
查看提交历史,相关参数如下
--oneline
简洁形式查看--graph
查看合并历史--reverse
逆向显示所有日志--decorate
查看标签--author
指定作者--since --before --until --after
指定时间
8.git标签
git tag -a 标签名 e27a40c
"e27a40c"是提交记录编号
9.git远程仓库(Github)
- 添加远程仓库
git remote add [shortname] [url]
- 本地仓库推送到远程仓库
git push -u origin master
- 查看远程仓库
git remote -v
- 从远程分支下载分支与数据
git fetch
合并远程分支到本地分支git merge
git pull <远程主机名> <远程分支名>:<本地分支名>
等于git fetch
+git merge
- 删除远程仓库
git remote rm [远程主机名]