gitee创建项目到多人协作

 

目录

一,创建git项目

二,创建dev分支

三,合并分支

四,多人协作


由于忍受不了GitHub访问速度 ,还是更喜欢国内的gitee,页面加载是真的很流畅

gitee:https://gitee.com/

一,创建git项目

在gitee官网新建仓库

比如现在我是userA,并在本地建了一个项目,该项目现在只有一个文件夹名为userA

在当前文件夹里右键点击“git bash here”

这时候刷新gitee官网,可见本地项目已成功推送到远程

二,创建dev分支

然后现在在本地添加dev.txt文件

在命令行从master分支上新建并切换到dev分支,然后add,remote,再将当前dev分支推送到远程dev分支,并将它们关联起来

(注意:git push origin dev -u 这行命令,由于是第一次推送到远程dev分支,所以加上-u让本地和远程的dev分支关联起来,否则后面在推送时会提示未关联远程项目,造成不必要的麻烦。这次加上-u关联起来后,后面就不用加-u 了,直接使用git push origin dev推送就行)

这时候远程刷新,可以看到多了一个dev分支,就是刚刚我们推送过来的

查看dev分支,会看到dev分支上有test.txt和dev.txt文件

而查看master分支,会发现只有test.txt,而没有dev.txt文件。为什么?因为我们还没有将dev分支的内容合并到master分支上

三,合并分支

接下来我们将dev分支合并到master分支上。

先切换到master分支,再使用git merge dev命令合并dev分支,合并后,本地的master分支上就有了dev.txt的内容了,也就是有了dev.txt了,此时再将合并后的本地master分支推送到远程,这样远程master分支就会也有dev.txt文件了

刷新远程,可以看到master分支确实有了dev.txt分支了!

这样就完成了一个最基本的过程了。

而在实际项目开发中,通常开发不是单打独斗,而是要多人协作,因此,我们有必要模拟一下多人开发的场景

四,多人协作

接下来程序员B,即userB上场了

userB准备在userA的基础上进行开发,于是userB也在本地建了一个文件夹命名为userB

然后复制了远程的项目

首先userB文件夹是空文件夹。克隆项目后,userB文件夹中就出现了test文件夹

进入到test文件夹(此时test文件夹中是空的,还没有任何内容)

于是要将远程的dev分支拉过来,使用命令:git checkout -b dev origin/dev

可以看到test文件夹中就有了dev.txt 和test.txt文件了

然后userB添加了新的文件,为userB.txt,并将其推送到远程的dev分支上

那么接下来,让人最难受的地方就来了

由于在userB修改test文件夹内容的时候,userA同样也在修改test文件夹内容

userA在test文件夹中添加了userA.txt,同样,他也准备把userA.txt推送到远程dev分支上

此时他使用git push origin dev命令进行推送,却发现推送失败!

为什么?因为在他之前,userB已经编辑了test文件夹并推送到了远程dev分支上,所以起了冲突!

如何解决呢?

这时候的思路就是:将远程最新的dev分支,也就是userB推送后的dev分支内容拉取到本地,然后在本地解决起冲突的部分内容,该合并的合并,该删的删,解决后,再推送到远程dev就可以了

命令行中执行拉取命令:git pull ,执行后会出现以下界面

这里就是说为什么要合并这个内容,让写一个注释,不写也没关系,直接输入:wq,按回车就行了

这里就打开test文件夹,查看并编辑到底是哪里的内容出了冲突

冲突解决好后,就可以重新推送到远程dev分支了

不过,在这里push推送之前,一定需要记得再重新添加(git add .)内容和提交(git commit -m 'xx')一下

刷新远程dev分支,就可以看到解决冲突后的内容啦

 

这里是github的入门:http://www.noobyard.com/article/p-kuztadpb-et.html