1.git简介
git是目前世界上最先进的分布式版本控制系统,不需要中央服务器,每个人的电脑就是一个完整的版本库,工作时不需要联网。其保存了文件每一个版本的快照而不是变化信息,因此进行版本间的切换更加高效。
git 的工作原理和流程如下:
命令如下:
1、clone(克隆):从远程仓库中克隆代码到本地仓库
2、checkout(检出):从本地仓库中检出一个仓库分支然后进行修订
3、add(添加):在提交前需将修订过的代码添加到暂存区或将新添加的文件添加进暂存区,表示该文件开始开始git管理
4、commit(提交):将暂存区的文件提交到本地仓库,本地仓库中保存有修改的各个历史版本
5、pull(拉取):从远程仓库拉取代码到本地,自动合并然后放到工作区
6、push(推送):将本地仓库的文件推送到远程仓库,实现共享
2 .git使用
2.1初始化git仓库
初始化一个git目录总共有两种方式:
- git init 方式将本地的一个现存目录创建为新的git仓库
- git clone [url] 方式克隆出一个新的镜像仓库(更常用)
2.2配置git信息
使用 git config 对git信息进行配置
- git config –system 对系统的所有用户进行配置,信息保存在/etc/gitconfig中
- git config –global 对当前用户进行配置,信息保存在~/.gitconfig中
- git config 对当前git 目录进行配置,保存在“pwd”/.git/config中
- git config –global user.email “user email”
- git config –global user.email “user name”
- 即git操作时的用户名和邮箱,每次git提交都会引用这两条信息,说明谁提交了更新
- git config –global merger.tool vimdiff 定义在进行合并冲突时使用哪种差异分析工具
- git config –global core.editor vim 当git需要输入一些额外的信息时,会调用此文件编辑器
- git config –list 用于查看配置信息
- git config –h 获取git config命令的使用方式
2.3.git 常用命令
- git status 检查目录中的各文件处于什么状态
- git log 查看提交历史
- git log –p -2 -p显示每次提交的内容差异,-2指显示最近两次的提交
- git add [fileName] 将新的文件加入暂存区进行跟踪或者将改动的文件加入暂存区,等待提交
- git diff 可以观察到当前工作目录中已修改文件和暂存区内文件快照之间的差异
- git diff –cached 查看已暂存的文件和上次提交的文件之间的差异
- git commit 提交文件,每次提交前最好先git status确认一下是否都暂存了,编辑器会提示你输入提交说明
- git commit –m “提交说明” 会直接提交
- git commit –a –m “提交说明” 可以跳过暂存区直接在工作区提交
- git rm [file] 用于删除某个文件(需要在暂存区移除某个文件然后在提交),这也会将文件从当前的工作目录中删除
- git rm –f [file] 如果删除前文件被修改过且已放入暂存区则需要加“-f”选项
- git rm –cached [file] 把文件从暂存区删除但仍保留在当前工作目录中
- git mv file_old file_new 对文件重命名
- git commit –amend 修改最后一次提交,此命令将使用当前暂存区的快照进行提交,如果刚刚提交完没有改动直接运行此命令的话,可以编辑刚刚的提交说明
- git reset HEAD [file] 取消file的暂存,取消已暂存的文件
- git checkout – [file] 可以抛弃未暂存文件的修改,将未暂存的文件回到修改前的状态
- git remote 查看当前配置的远程仓库
- git remote –v 显示远程仓库的克隆地址
- git remote add [仓库名] [url] 添加远程仓库
- git push origin HEAD:refs/for/XXX 将本地仓库中的数据推送到远程仓库,目前我们需要提交到gerrit 上审核通过才能提交到真正的远程从仓库,所以使用 refs/for origin 指的是远程仓库名 HEAD 表示本地分支 XX表示远程分支名称
- git remote show [remote-name] 查看远程仓库的信息
- git tag 查看标签
- git tag –l ‘V009*’ 查看V009XXX标签,相当于对所有标签进行筛选
- git tag –a ‘标签名’ –m ‘标签备注’ [提交号] 为指定的提交创建标签
- git show ‘标签名’ 查看相应标签的版本信息
- git check –b [branch_name] 新建并转到分支,相当于 git branch [branch_name]&& git checkout [branch_name]
- git merge [branch_name] 将分支合并到HEAD上
- git branch –d [branch_name] 删除分支