git配合github或者码云进行多人协作
写在前
- 由于项目需要多人协作,并且回顾一下
git
的基本操作而有此篇 - 本文基于
码云
,github
操作也一样,因为码云
是国内的,下载速度等方面更快
让别人修改你的项目
- 使用
git
做多人协作之前,会想到一个基本问题,怎么才能让别人参与自己的项目,并且提交修改呢?
从之前接触的方式来看,就是通过ssh
进行身份验证了。
身份验证
- 直接添加即可。有时候可能会出现这个公钥已经被用了,这里就需要把原来的删除了,或者直接创建新,创建的命令如下:
ssh-keygen -t rsa -C "这里一般填邮箱地址" //生成rsa
cat ~/.ssh/id_rsa.pub //获取公钥,显示什么就完整复制什么到上边就可以了
- 传入的描述参数可以一般填邮箱地址,但是可以填其他,如果你重新生成,有用原来的参数,那么生成的
ssh
还是会跟之前一样的。如果直接生成的话,会显示覆盖原来的pub
等文件,所以要配置多个rsa
,可以自行百度,这里不赘述
多人管理
- 多人管理下,可以通过创建组织,也就是
github
的origanization
- 创建组织后,可以创建仓库
- 添加成员
- 这里选择直接复制链接邀请成员
- 添加进组织的成员就能看到该仓库
- 这里仅仅是创建组织进行多人协作,但是也可以对个人的项目进行协作的,例如你自己的项目,也是可以的,也就是可以正常进行操作,但是你自己的项目,就不能像在组织那样,组织的成员都能看得到
推送项目到仓库
- 首先在项目文件上进行
git
初始化
git init
- 出现该文件说明初始化成功
- 在
码云
上已经添加好了ssh
,本地上也要进行连接
git remote add origin 你的SSH
ssh
查看
- 测试连接
ssh -T git@gitee.com
- 码云第一次会提示你进行输入的,输入
yes
即可,不要回车
- 再次输入测试查看
- 查看啊本地的连接
git remote -v
- 推送仓库到项目仓库
git add . //添加全部到暂存区
git commit -m "随便写点描述"
git push origin master
- 上述中,是直接推送到
master
分支,但是对于项目更好的方式去添加多个分支进行管理,这里最基本的是保留两个分支master
和dev
dev
是开发分支,名字随便你起,master
为主分支dev
是用来进行开发的,master
是进行发布版本的,或许这里会有点模糊,后边会有继续的阐述- 首先创建分支并推送到远端
git checkout -b dev // 创建dev分支并且切换到dev分支
git push origin dev //可在远程创建dev分支
- 这里分支的创建使用的是
git checkout -b 分支名
git checkout -b dev // 创建dev分支并且切换到dev分支
git branch dev //仅仅创建分支,不切换到相应的分支
git checkout dev //切换到dev分支
git branch -d dev //删除本地dev分支
git branch -r -d origin/dev 删除远程的dev分支
git branch //查看本地分支
git branch -a //查看远程分支
别人操作自己的项目
- 到这里上述个人初始化一个仓库的流程已经结束,接下来是模拟要参与合作的个人进行的操作
- 首先是先克隆仓库到本地
git clone 项目https
-
克隆到本地后,就会看到项目文件夹,然后使用
Git Bash
进行打开并查看分支
-
只有一个
master
文件,刚才在我创建仓库的时候是创建了dev
分支的,所以本地项目,也创建一个dev
分支,但是不一定叫dev
,本地的分支,名字随便你起,创建分支的语句在上方不载赘述 -
第一步同样是连接远程库,方法在上述,不再赘述,这里提一嘴的是,从码云克隆下来的项目,初始是使用
https
进行连接,这里可以通过git remite -v
进行查看 -
如果使用
https
进行连接的情况下,进行git push
会出现要求输入账号密码的情况
-
这种显然跟我们的方式不同,并且每次都要输入比较麻烦,所以可以使用以下命令进行删除远程分支,并添加
ssh
进行连接
git remote rm origin //删除远程连接
git remote add origin 你的ssh
git remite -v //查看远程连接
别人提交项目流程
- 兼顾日常开发变化,每次项目变化提交进行拉取最新的状态
git pull origin dev //首先拉取仓库最新的状态下来
git status // 查看红色警告的文件
git add 目录 // 一般通过添加对应的目录进行将该目录下全部的修改都提交
git status // 再查看状态,都变绿了就可以了
git commit -m "添加描述"
git pull origin dev //稳妥起见,推送前再次拉取最新状态,如果确定不会
有人改了,可以不做
git push origin dev //提交到dev分支
- 上述中
dev
只是自定义的名称而不是特定的,可以使用自定义的
分支补充
- 上边提了一下,例如一般设计的
master
使用来发布稳定版本的dev
分支是用来进行开发的,他是一直变化的
- 个人在本地也可以开一个自己的分支,但是不提交到远端,只供自己开发使用
- 说了这么多,或许还对分支有点模糊。具体点,分支可以起隔绝的作用,例如一直进行版本更新开发场景的,可以在
dev
分支,而master
分支上可以放已经发布的稳定的版本,无论dev
被改穿了也不会影响master
分支 - 而个人使用就是一样的道理
- 那么开发好的
dev
分支又怎么整到master
呢,这就需要进行合并
git checkout master //首先切换到master分支
git merge --no-ff dev //合并,--no-f是快进式合并的意思
- 其他分支的合并也是一样,先转换到要合并的分支,然后合并
- 合并后,在
master
分支上直接推送到远端即可,推送流程就是上述的git status
到git push
那一套