Git是开源的分布式版本控制系统,是Linus Torvalds为维护Linux内核开发而开发的代码管理工具,不需要服务器端软件支持。
一、下载Git并安装配置
1. 安装
(1)CentOS系统
yum -y install git-core
git –version 验证
(2)Windows系统
下载EXE安装包按照提示安装即可
2. 配置
(1)软件配置文件位置:
[Windows]C:\ProgramData\Git\config
(2)查看对所有用户有效的环境变量:
git config --system --list
配置文件位置:
[*nix]/etc/gitconfig
[Windows]C:\Program Files\Git\mingw64\etc\gitconfig(Git安装目录下)
(3)查看对当前用户有效的环境变量:
git config --global --list
配置文件位置:
~/.gitconfig
(4)查看当前项目有效的环境变量:
git config --local --list
配置文件位置:
.git\config
(5)查看配置
git config --list
全部
git config config-key
指定键值的配置
(6)设定配置
git config --<system|global|local> key value
二、常规使用
理解几个术语
仓库:
本地仓库(local repository)
远端仓库(remote repository),例如GitHub、GitLab或局域网上服务器的本地仓库
工作目录(working dir):持有实际文件,本地的所有更改都在这里,是一个本地目录,不包括版本库目录 .git
暂存区(stage/index):临时保存改动,文件在版本库目录中.git/index,执行git add
后的文件存放在这里
版本库(repository):维护不同的快照目录树,执行git commit
命令后的文件存放在这里
HEAD:指向master分支的一个游标,在命令中可以相互替换
- 初始化本地仓库
git init[ directory_name]
说明:
directory_name为空时使用当前目录作为仓库,不为空时以指定的目录作为仓库;
仓库初始化完成后会在目录下生成 版本库[.git目录]。 - 检出仓库,创建本地项目副本
git clone <path>[ directory_name]
说明:
仓库路径有两种,本地路径和远端路径;
<path>::= /path/repository
<path>::=username@host:/path/repository
directory_name为检出项目存放的目录,为空时默认使用仓库目录名; - 添加文件到缓存
git add <.|filename1[ filename2, ...]>
说明:
此处的添加文件包含新增的文件、删除的文件和修改的文件; - 提交文件到版本库
git commit -m 'comment'
说明:
也可以添加和提交文件一起进行git commit -am 'comment'
- 查看文件状态
git status
git status -s
获取简短输出 - 查看差异
git diff HEAD
查看所有的改动
git diff
查看未缓存的改动
git diff --stat
查看未缓存的改动的摘要
git diff --cached
查看已经缓存的改动
git diff --cached --stat
查看已经缓存的改动摘要 - 删除文件
git rm[ -f] <file>
将文件从工作目录和缓存区删除
git rm --cached <file>
将文件从缓存区删除 - 移动文件
git mv oldfile newfile
移动缓存区文件 - 恢复文件
git reset HEAD
重置缓存区目录树
git checkout <.|-- filename1[ filename2, ...]>
重置工作目录变更
git checkout HEAD <.|filename1[ filename2, ...]>
重置缓存区和工作目录变更 - 查看日志
git log --oneline --graph --reverse --key=value --since={} --before={} --until={} --after={} --no-merges --decorate -n
说明:
oneline显示简洁版本;
graph开启拓扑图;
decorate参数显示标签;
no-merges参数不显示分支;
n为数字,指明行数; - 分支
git branch
列出分支
git branch <branchname>
创建分支
git checkout <branchname>
切换分支
git checkout -b <branchname
创建并切换分支
git branch -d <branchname>
删除分支
git merge <branchname>
合并分支内容到当前分支
git diff <source_branch> <target_branch>
比较分支差异
说明:
合并冲突时先解决冲突然后添加文件到缓存区进行提交 - 标签
git tag
列出标签
git tag -a <tag_name>
打标签
git tag -a <tag_name> <ver_no>
追加标签
git tag -a <tag_name> -m 'comment'
追加标签注释 - 远端仓库操作
git remote[ -v]
列出远端仓库
git remote add [shortname] [server]
添加远端仓库
git remote rm <shortname>
删除远端仓库
git pull <shortname>
从远端仓库更新
git fetch <shortname> //1.提取
git merge <shortname>/<branchname> //2.合并
git push -u [shortname] [branchname]
推送到远程仓库
配置验证信息
ssh-keygen -t rsa -C "youremail@example.com
生成SSH Key,~/.ssh/id_rsa.pub
ssh -T git@github.com
验证配置是否成功
参考资料
简明使用:http://www.runoob.com/manual/git-guide/
Git教程:http://www.runoob.com/git/git-tutorial.html