git使用中级教程

摘自微信公众号:https://mp.weixin.qq.com/s?__biz=MzU1NTg0MzMwMg==&mid=2247483711&idx=1&sn=b75e80c4d4483092cee832b22b516b65&chksm=fbcf6ab6ccb8e3a034079078bd9e68a960d9640a6a1b0dff2148f7857e18cbb22f71b2faf4ce&scene=27&ascene=0&devicetype=android-26&version=2700033a&nettype=3gnet&abtest_cookie=BAABAAoACwASABMABAAjlx4AV5keAM6ZHgDZmR4AAAA%3D&lang=zh_CN&pass_ticket=9lOSHFEPi%2FBfnwQrxYqpqLtiULQjuTaK8IThDnW8CiLuaev%2F8mlbsLQoAcYyi4QD&wx_header=1

 

上篇文章说了最基本的git使用,这里讲一些常用的git 操作,git既然是版本控制器,那什么是版本呢?

 

上一篇已经在github上创建了一个仓库了,这个时候我们模拟去公司的时候,怎么拉项目

首先,我们把桌面的那个demo文件夹删掉,因为待会拉下来的项目会重复。

在桌面右键,打开git bash。

 

git clone https://github.com/****/demo.git

从远程仓库复制一个仓库到本地,你会看见桌面上有个demo文件夹,进去会发现就是github上的仓库,还有.git隐藏文件夹,也就是说clone下来的仓库就已经变成本地仓库了。

git使用中级教程_第1张图片

 

然后这个时候当前还没进入仓库文件夹,只是还在桌面上

cd demo

就进入仓库了,上面会多个(master)的分支显示,当前在master分支上

git使用中级教程_第2张图片

 

这是就相当于把项目已经down下来了,我们就可以工作,写代码了

我们先修改一下,在test1.txt中修改

git status

查看修改情况,

git使用中级教程_第3张图片

git diff 

查看修改的内容,精确到行

git使用中级教程_第4张图片

 

git add .

git commit -m '修改test1.txt'

提交这次修改

git使用中级教程_第5张图片

 

git log 

查看这个master分支上的提交的日志,每一次的commit都是一条提交,都是一个版本

git使用中级教程_第6张图片

 

git reflog 

查看你的所有提交记录,比如你的commit ,merge,checkout都能看见

 

git diff <远一点commitId> <近一点commitId>

查看2个提交之间的不同,修改了什么代码,都能看见

git使用中级教程_第7张图片

 

 

分支

我们在工作中的项目一般是多个人一起开发的,那么你写代码的时候就不能直接在主分支(master)上修改,因为你修改的不一定是对的,别人就不能开发了,所以一般是自己切一个分支来开发,切出来的分支是主分支的副本,代码一模一样。然后你开发完,在合并到主分支,这样就不会影响别人了,别人也不会影响你

 

git branch demobranch

创建一个叫demobranch的分支

git checkout demobranch

第一次checkout会把master的代码复制到新创建的demobranch,以后再checkout就是切换分支了,并不会复制代码。

git使用中级教程_第8张图片

(这那个指令可以合并成一个简写git checkout -b demobranch)

 

这样我们就从主分支切换到demobranch分支了,可以在这个分支上任意开发,然后再合并到主分支。我们现在在demobranch上修改,做了一个注释为add的提交。

git使用中级教程_第9张图片

这个时候我们要把这个提交合并到master上

 

git checkout master

切换到master

git merge demobranch

合并demobranch分支上的新提交

git使用中级教程_第10张图片

master上就有这个提交了

 

提交失败

你不是每次提交都会成功,有可能会失败,如果你和别人都是在同一个分支上写代码的话,别人先提交,你就提交不了,因为你的分支上就不是最新的代码了,所以你必须git pull 把远程的提交拉取下来,同步到本地,保证提交最新,就可以提交了

 

冲突

在pull的过程中有可能会冲突,冲突的意思就是,别人修改了某个文件,你也修改了这个文件,git不知道要 保留那个代码最正确的,所以需要我们自己人工干预去处理,处理好了才能继续提交,这样pull才算完成。

 

git pull = git fetch + git merge 

就是从远程拉取,然后再merge,就是在merge的时候出现冲突的,所以我们merge的时候也会出现冲突,我们来演示merge的时候冲突。

 

我们再切换一个分支demobranch22作为别人在写代码,然后合并到master上,

git使用中级教程_第11张图片

这个时候,我们到demobranch这个分支上修改,然后再merge,就会出现冲突

git使用中级教程_第12张图片

这里显示test1.txt出现冲突,因为别人和我都修改了,test1.txt这个文件,别人提交了,而我没有同步他的代码(一般我在写之前会git pull同步一下代码),所以现在没办法同步了,同步还是会冲突,这个时候我们可以放弃合并,git merge --abort就别放弃了

 

所以,这时候如果不放弃合并,就要解决冲突,我们一般会问别人他的那段代码怎么处理,一般2个都保留,我们先看看test1这个文件

git使用中级教程_第13张图片

我的处理之后

git使用中级教程_第14张图片

这个时候,文件出现了修改,我们再次提交一下就好了

git使用中级教程_第15张图片

 

为了更好的避免冲突,每次修改之前,都同步一下代码,git pull

 

好,今天的中级教程就讲到这里,明天讲高级教程

 

 

摘自微信公众号

git使用中级教程_第16张图片

你可能感兴趣的:(git使用中级教程)