GIT (分布式版本控制系统)
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper 。——《百度百科》
配置git环境:git config --global
参数讲解:
config:参数是用来配置git环境的
–global:长命令表示配置整个git环境
初次使用git需要设置你的用户名以及邮箱,这将作为当前机器git的标识,如果你用它来下载远程仓库一些需要登录权限的仓库会要求登录,git默认使用配置邮箱以及用户名登入,但会要求你手动输入密码
用户名配置:
$ git config --global user.name "你的用户名"
user代表用户,.name代表配置用户的名称
邮箱配置:
$ git config --global user.email "你的邮箱"
user代表用户,.email代表配置用户的邮箱
克隆仓库:git clone
$ git clone url
从远程库中克隆,克隆一个版本库到新的目录,可以在当前目录新建一个文件夹,也可以git clone [地址] [本地目录]。
Git支持多种协议,包括http和ssh,但通过ssh支持的原生git协议速度最快
url示例:
http://192.168.20.12/IVI/Glory/POC.git
git@192.168.20.12:IVI/Glory/POC.git
添加文件到暂存区:git add
$ git add .
add命令可用来添加文件到暂存区,add . 表示添加所有文件到暂存区
提交版本:git commit
$ git commit -m "first commit"
提交暂存区到本地仓库,引号中的内容为注释信息。
查看状态:git status
$ git status
git status 命令用于查看在你上次提交之后是否有对文件进行再次修改。
通常我们使用 -s 参数来获得简短的输出结果:
$ git status -s
AM README
A Hello.java
AM 状态的意思是这个文件在我们将它添加到暂存之后又有改动。
发布版本:git push
$ git push origin master
将本地的 master 分支推送到 origin 主机的 master 分支。
获取代码:git fetch
$ git fetch origin
从远程获取代码库,该命令执行完后需要执行 git merge 远程分支到你所在的分支。
从远端仓库提取数据并尝试合并到当前分支:
$ git merge origin/master
下载远程代码并合并:git pull
git pull 命令用于从远程获取代码并合并本地的版本。
git pull 其实就是 git fetch 和 git merge FETCH_HEAD 的简写。 命令格式如下:
git pull <远程主机名> <远程分支名>:<本地分支名>
将远程主机 origin 的 master 分支拉取过来,与本地的 master 分支合并:
$ git pull origin master
远程仓库操作:git remote
$ git remote -v
查看远程仓库信息
示例:
xinl5457@liuxin09 MINGW64 ~/Desktop/gitTest/POC (master)
$ git remote -v
origin http://192.168.20.12/IVI/Glory/POC.git (fetch)
origin http://192.168.20.12/IVI/Glory/POC.git (push)
origin 为远程地址的别名。
remote 其他相关命令:
git remote add [shortname] [url] # 添加远程版本库
git remote rm name # 删除远程仓库
git remote rename old_name new_name # 修改仓库名
查看提交历史:git log
Git 提交历史一般常用两个命令:
- git log - 查看历史提交记录。
- git blame - 以列表形式查看指定文件的历史修改记录。
在使用 Git 提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,我们可以使用 git log 命令查看。
git log #列出历史提交记录
git log --oneline # 查看历史记录的简洁的版本
git log --graph # 查看历史中什么时候出现了分支、合并。开启拓扑图选项
git log --reverse # 逆向显示所有日志。
git log --author # 查找指定用户的提交日志
查看指定文件的修改记录:git blame
格式如下:
git blame < file >
file 参数为具体的文件名
示例:
$ git blame Hello.java
查看 Hello.java 文件的修改记录
分支管理:git branch
创建分支命令:
git branch (branchname)
切换分支命令:
git checkout (branchname)
当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。
删除分支命令:
git branch -d (branchname)
合并分支命令:
git merge
列出分支基本命令:
git branch
没有参数时,git branch 会列出你在本地的分支。
Git 标签:git tag
如果你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用 git tag 给它打上标签。
比如说,我们想为我们的项目发布一个"1.0"版本。 我们可以用 git tag -a v1.0 命令给最新一次提交打上(HEAD)“v1.0” 的标签。
-a 选项意为"创建一个带注解的标签"。 不用 -a 选项也可以执行的,但它不会记录这标签是啥时候打的,谁打的,也不会让你添加个标签的注解。 我推荐一直创建带注解的标签。
$ git tag -a v1.0
如果我们要查看所有标签可以使用以下命令:
$ git tag
v0.9
v1.0
创建标签
$ git tag v1.0
创建一个名为 v1.0 的标签
查看已有标签
$ git tag
删除标签
$ git tag -d v1.0
删除 v1.0 的标签
查看此版本所修改的内容
$ git show v1.0
查看 v1.0 版本修改的内容