git介绍
git是一款快速的,可扩展的,分布式的版本控制系统
官方文档链接.
配置git的工作环境
在使用git前需要配置git的最小工作环境,即设置开发者的名字和邮箱,命令如下:
git config --global user.name 'your name'
git config --global user.email 'your email'
#查询是否已经添加成功可以使用命令
git config --global --list
#或者
git config user.name
配置git的文本编辑器
如果不配置git的文本编辑器,git 会使用操作系统默认的文本编辑器,但是我们可以配置自己习惯的文本编辑器,这回提高我们的工作效率。以vim为例,命令如下:
git config --global core.editor vim#将文本编辑器设为vim
git config --global -e#我们可以使用这条命令看看是否已经设置成功
获取帮助
获取帮助有很多种方法,命令如下:
git help <command>#或者
git <command> --help#或者
man git-<command>#还有
git <command> -h#可以获得更简短的帮助
git使用
建立git的仓库有几种场景,一种是已经有了代码,另一种是新建一个工程让git管理,还有一种是克隆已有的仓库。下面是几种种场景建立git仓库的命令方式:
#有代码的情况
cd your_project_directory
git init
#没有代码的情况
cd directory_project_placed
git init your_project_name
cd your_project_name
#克隆仓库的情况
git clone <url>#使用该命令会在当前目录下建立一个仓库
git clone <url> name#可以将工程克隆的目录名设置为name
add命令
add命令可以更新工作树当前目录的暂存区,添加工作文件到暂存区,移除工作树中不再存在的路径。在对工作文件修改后和运行commit命令之前都必须把新的文件和修改后的文件加入到暂存区中去。
git status命令可以获取一个哪些文件更改并且为下一次的commit暂存了起来的总结。add的命令有:
git add <path>#可以是文件夹,会添加文件夹里所有匹配文件
#也可以用来更新暂存区来匹配path当前的状态,比如在dir目录里修改文件1,
#添加文件2,删除文件3.那么执行git add ./dir后就会在工作树下
#修改文件1,增加文件2,移除文件3。如果想要忽略移除的文件
#可以使用--no-all选项
git add -n/--dry-run 文件#并不实际添加文件,只是显示文件是否存在
git add -v/--verbos 文件#显示详情信息
git add -f/--force 文件#强制添加,允许添加忽略的文件,
#不加-f添加忽略的文件会报错
忽略文件
当我们不希望一些文件纳入git管理(比如日志文件,编译过程产生的中间文件),也不希望这些文件出现在未跟踪列表里时,可以创建一个.gitignore的文件,在这个文件里列出要忽略的文件模式。
所有空行或者以 # 开头的行都会被 Git 忽略。
可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。
匹配模式可以以(/)开头防止递归。
匹配模式可以以(/)结尾指定目录。
要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。 星号(*)匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符 (这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c); 问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。 使用两个星号(**)表示匹配任意中间目录,比如 a/**/z 可以匹配 a/z 、 a/b/z 或 a/b/c/z 等。
查看文件状态
查看文件的状态可以使用命令:git status,使用命令:git status -short或者git status -s 可以查看文件状态的模式。
查看已暂存和未暂存文件的修改
如果想知道当前做了那些更新尚未暂存,具体修改了哪些地方,可以使用命令:git diff ,若要查看已暂存的将要添加到下次提交里的内容,可以用 git diff --staged 命令
删除文件和移动文件
使用命令:git rm 文件,可以直接从仓库中删除文件,
git rm --cached 文件,可以从暂存区删除文件,
git mv 文件 文件,可以从仓库中移动文件,或者重命名文件。
commit命令
记录变化到仓库中,可用的选项有:
git commit -a/--all#该命令可以自动的暂存修改和暂存的文件,
#但不影响未被git管理的新文件(默认)
git commit -p/--pitch#交互式添加变更
git commit --interactive#交互式添加文件
git commit -i/--include#添加指定的文件到索引区等待提交
git commit -q/--quiet#提交成功后不显示概述信息
git commit -v/--verbose#在提交说明模板里显示差异
git commit --author <作者>#提交时覆盖作者
git commit --date <日期>#提交时覆盖日期
git commit -m/--message <说明>#提交说明
git commit --short#以简洁的格式显示状态
git commit --long#以长格式显示状态(默认)
git commit --amend#修改先前的提交
提交日志log
使用命令:git log可以查看提交历史。
git log -p/–patch,它会显示每次提交所引入的差异(按 补丁 的格式输出)。 你也可以限制显示的日志条目数量,例如使用 -2 选项来只显示最近的两次提交。
git log --stat,使用该命令可以看到每次提交的简略统计信息。
git log --graph,以图形方式显示,可以查看分支结构。
撤销操作
如果在一次提交后发现有几个文件忘了提交,或者提交信息错误,可以使用命令:git commit --amend,来重新提交,不会产生新的提交信息。
取消暂存的文件可以使用命令:git reset HEAD – <文件>
最近提交的版本覆盖掉修改的文件:git checkout –
git标签
在 git 中列出已有的标签,只需要输入:git tag
如果提供了一个匹配标签名的通配模式,那么 -l 或 --list 就是强制使用的。
附注标签:git tag -a v1.4 -m “my version 1.4”
轻量标签:git tag v1.4-lw
区别:附注标签包含打标签者的名字、电子邮件地址、日期时间, 此外还有一个标签信息。
通过使用命令: git show Tag,可以看到标签信息和与之对应的提交信息。
后期打标签:git tag -a Tag 校验和或部分校验和,校验和就是输入git log后commit后面跟的一串数字。
删除标签命令:git tag -d Tag
git分支
分支创建:git branch <分支>,
分支切换:git checkout <分支>,
在切换分支时,工作目录里的文件会被改变。 如果是切换到一个较旧的分支,工作目录会恢复到该分支最后一次提交时的样子。
使用命令:git checkout -b <分支>,可以同时完成创建和切换的工作。
合并分支:首先回到master分支git checkout master,然后再合并git merge <分支>。
删除分支:git checkout -d <分支>
查看当前的所有分支:git branch
查看每一个分支的最后一次提交:git branch -v