git使用中级教程

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

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

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

在桌面右键,打开git bash。

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

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

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

cd demo

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

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

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

git status

查看修改情况,

git diff 

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

git add .

git commit -m '修改test1.txt'

提交这次修改

git log 

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

git reflog 

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

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

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

分支

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

git branch demobranch

创建一个叫demobranch的分支

git checkout demobranch

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

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

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

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

git checkout master

切换到master

git merge demobranch

合并demobranch分支上的新提交

master上就有这个提交了

提交失败

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

冲突

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

git pull = git fetch + git merge 

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

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

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

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

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

我的处理之后

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

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

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

猜你喜欢

转载自blog.csdn.net/chunlaiqingke/article/details/87900949