Git是目前世界上最先进的分布式版本控制系统,高端大气上档次!
1、环境搭建
去git
官网下载安装包,默认安装,安装完后 进入Git-Git Bash
会跳出一个命令窗口,输入命令
git --version
即可查看安装情况,如果出现版本号,即代表安装成功。
安装成功ps:Git Bash命令窗口是目录结构 是linux类型,可以用来ssh远程机器和进行和操作linux相关的操作,超级实用!!!
装完后还需要洗后一步设置,在命令行输入:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
配置之后在命行输入下面命令可以查看具体配置情况
git config --list
2、版本库管理
创建版本库的步骤
- 选择一个合适的空目录,执行命令
git init
,会在你的目录出现一个隐藏目录.git
,用来版本管理的,严禁修改
- 将文件添加至版本库,执行命令
git add fileName
- 将文件进行提交,执行命令
git commit -m "提交说明"
实操步骤见下图
1527925757(1).png文件状态
git中使用命令git status
用于查看当前库的状态,具体有以下几种情况:
- 与仓库完全一致时
- 新建一个文件(hello.text),还没有添加至版本库时
。
样例中新添了一个文件,并没有用git管理起来.
ps:此时如果需要撤销修改,可以使用
git checkout -- fileName
- 执行add命令至暂存区之后:
ps:此时如果需要撤销修改,可以使用
git reset HEAD fileName
把提交暂存区的修改去除,之后再使用git checkout -- fileName
即可撤销修改。
- 进行commit之后,此时文件已经提交至本地仓库了,再执行
git status
就第一种情况一样了。
ps:此时如果需要撤销修改,可以使用版本回退命令
git reset 版本号
#######版本回退
reset
版本间的回退使用git reset [--soft||--mixed||--hard] 版本号
来操作
--soft //只改变分支的提交
--mixed //改变分支和暂存区,不改变本地工区,默认
--hard //都改变
Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD指向了你要回退的版本
revert
操作撤销使用 git revert 版本号
,进行一次性的commit进行覆盖
版本比较
可以使用git diff
进行版本差异的对比
上图是所有文件的差异显示,源文件默认是HEAD版本,目标文件是本地文件,当然命令可以添加版本和指定文件的命令,git diff 版本号||版本号前几位||HEAD^N(N>=0) 目标文件
,例
git diff f3d3029f9fcc767234d560a2aed1e9298be18952 hello.txt
git diff f3d30 hello.txt
git diff HEAD hello.txt
其中版本号f3d3029f9fcc767234d560a2aed1e9298be18952
是hello.txt
的最新一次提交,上面三个命令结果一致。
#######提交日志
当想查看提交日志时,可以使用git log [--oneline] [filename]
命令,主要有一下集中常见的用法
git log
image.png
git log --oneline
image.png
git log fileName//过缕与文件相关的提交记录,也可添加--oneline
git reflog//记录命令日志,可添加fileName进行过滤
image.png
3、远程仓库
gitHub
:现在的git的远程仓库最火的莫过于gitHub
(最近微软好像要收购),免费托管,但是如果要创建私有库是需要收费的。
gitLab
:也是一个免费的托管仓库,可以免费创建私有库,一般企业用会自己搭建GitLab的仓库服务。
使用远程仓库有以下两种场景:
- 先有本地仓库,需要上传至远程仓库
- 已有远程仓库,需要下载至本地仓库
一般实际项目都是第2种情况,那这里也以第二种情况进行说明
step1: 仓库。首先你得获取一个远程仓库的地址,例:git@github.com:weaimike/hello-world.git
step2:克隆。使用
1527943684(1).pnggit clone url
命令进行仓库克隆
克隆完成后,进来项目目录,使用命令
git remote -v
可以查看远程仓库信息。
image.pngstep3: 更新。git更新远程仓库使用命令
git pull
,会将远程仓库的提交拉取至本地 并与本地仓库进行合并,合并的会有冲突,这个在分支管理中会讲解。step4:推送。将本地提交推送至远程仓库,使用命令
git push [remote-name] [branch-name]
4、分支管理
分支开发有点类似下面的图的示意,
0.png
git branch 分支名称 //创建分支
git checkout 分支名称 //切换分支
git branch //查看当前分支
git branch -d 分支名称 //删除分支
git merge --no-ff -m "合并信息" 分支名称 //将分支名称 以 --no--ff 模式 合并到当前的分支
git merge 分支名称 //以fast-forward 模式 合并
5、idea使用git
克隆
image.png image.png上面演示了如何从远程仓库 clone 项目。
本地开发
从远程拉下项目之后,就要进行繁琐的项目开发,那idea能不能像 svn那样,一眼就看出 当前文件的状态呢?答案是可以的,看下图
image.png咱们用命令git status
来对比下 与idea 显示的结果是对应得上的,通过idea显示的颜色,能够快速的知道当前文件的状态。
开发完之后先提交至本地仓库,先add再commit.
image.pngimage.png
idea常见的操作见下:
常用操作.png
团队协作模式
1、需要先用git pull试图合并;
2、如果合并有冲突,则解决冲突,并在本地提交;
3、没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
网友评论