GIT 版本控制器
作者:啊嗨哟
一、简介
目前来说Git是最流行最好用的分布式的版本控制器
它能够让我们很方便的管理我们的项目版本
在我看来他是一个工具,学习它不必花费很大精力,就像我我们使用日常软件一样,不必去精通它,因为有些东西可能一辈子也用不了!!
二、安装
1、在Linux系统安装
yum -y install git
只需简单的一条命令就能解决了!
然后输入命令
git --version
能够看到版本信息就说明已经成功安装了!
2、在windows上安装git
首先在官网上下载安装程序:https://git-scm.com/download/win
然后一直Next就OK了
完成安装后,桌面右击就能看到下面这个样子就ok了
单击Git Bash Here 看到类似下面这个 就可以开始工作了
三、常用的指令
作为一个使用者来说掌握下面的这些常用的指令就已经可解决大部分的问题了
1、创建用户和邮箱
当我们在进行推送(push)的时候我需要有一个身份来继续我们的操作,所以就需要创建用户和邮箱
git config --global user.name "tom"
git config --global user.email "tom@163.com"
2、创建版本库
可以简单理解为一个目录,只是这个目录可以被git所管理,可以对目录做了什么动作进行追踪,回退
mkdir /git
git init /git
3、管理版本库
我们的git其实分三部分分别是工作区、暂存区和版本库
工作区:顾名思义就是正真工作的地方,所有做写操作的地方;
版本库:是我们工作区中的一个隐藏文件夹.git,里面最重要的就是stage(或者叫index)的暂存区 ,git会为我们自动创建一个分支master,以及一个指向master的指针HEAD;
暂存区:将我们的修改暂时存储到暂存区,然后一次性提交到版本库中,而后进行推送。
创建版本库
cd /git/
touch a.txt
git add a.txt
git add .
git commit -m "描述信息"
版本穿梭
当我们进行多次提交后,可能连自己也忘记,那么这个时候就需要查找的功能了
git log
git log --oneline
git reflog
现在我们已经能够找到历史版本了,也就是说我们找到了后悔药
在git中有一个指针叫HEAD指向的就是当前版本,上一个版本就是HEAD,上上个版本就是HEAD以此类推,当我们的你是版本过多时我们能要写很多,所以我们可以采取HEAD~n(n是一个数值代表去到那个版本),那如果数也数不过来我们还可以通过commit id的方式进行版本的穿梭
git reset --hard HEAD^
git reset --hard HEAD~10
git reset --hard c30efe0
4、版本的比较
版本的比较分为两种情况
git diff a.txt
git fiff --cached a.txt
5、撤销修改
撤销修改也分为两种情况
git checkout -- a.txt
6、删除文件
同样删除文件也有两种方案
rm -rf a.txt
git add .
git commit -m "描述信息"
git rm a.txt
7、标签管理
git checkout master
git tag v1.0
git tag v0.9 f52c633
git tag
git show v1.0
git tag -d v1.0
git push origin v1.0
git push origin --tag
git tag -d v1.0
git push origin :refs/tags/v1.0
四、分支管理
分支之间是互不影响的,每个分支都是独立的,当一个分支的任务完成后就会往master分支上合并,master通常是一个稳定的分支,不在他上面工作。
1、创建与合并分支
git branch dev
git checkout dev
git switch master
git checkout -b dev
git switch -c dev
git branch
git merge dev
git branch -d dev
2、合并分支冲突
一般很少会出现冲突的问题,但是有时候会也有可能出现
当出现冲突是需要手动的解决
git log --graph
3、Fast forward模式
这种模式下删除分支后会丢失分支信息
如果强制禁用的话,Git就会在merge(合并)时生成新的commit,这样就可以看到历史的分支信息了。这样会可以看出曾经做过合并
git merge --no-ff -m "描述信息" dev
因为禁止合并会创建commit所以需要加 -m 参数
五、远程仓库
世界知名的:Githup
国内知名的:Gitee
要实现远程的克隆与推送,需要将公钥文件拷贝到远程仓库上
git remote add my-gitlab git@192.168.10.23:maven-test/maven-proj.git
git remote -v
git clone git@192.168.10.12:/git/pub.git
git push origin master
远程仓库上
git remote add my-gitlab git@192.168.10.23:maven-test/maven-proj.git
git remote -v
git clone git@192.168.10.12:/git/pub.git
git push origin master
|