使用Git进行团队协作
使用Git从Remote拉取代码有这几种形式:
- HTTP
- SSH
- ZIP下载
其中HTTP方式拉取的代码在每次上传的时候都需要输入帐号密码,并不好
使用SSH方式拉取的代码不需要输入帐号密码,很好
如何获取SSH密钥?
打开~/.ssh
进行查看
~/.ssh$ ls
known_hosts known_hosts.old
使用ssh-keygen -t rsa
命令
会有这几个提示:
Enter file in which to save the key (/home/yingmanwumen/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
一般放空不填
然后ls
,进行查看
$ ls
id_rsa id_rsa.pub known_hosts known_hosts.old
其中,id_rsa
是私钥,id_rsa.pub
是公钥
公钥、私钥什么东西自行百度
将公钥复制到Git服务器的相应设置中
接下来就可以git pull URL
来拉取内容了
记得URL是SSH方式的
如何进行团队协作

在小型开发中,设置如下分支:
master(main),主分支
develop,开发中分支
使用git branch develop master
从master上建立develop分支
使用git checkout develop
切换到develop分支,并使用git push origin develop
提交到remote服务器
在develop中完成修改后,将其merge到master分支中
当使用多人协作时,需要使用feature分支,即每个人都新建一个自己的feature分支
下面介绍具体开发过程:
开发者A克隆了代码并进行了改动:
git clone URL.git // 克隆仓库
git checkout develop // 切换到develop分支
git checkout -b feature-A develop // 从develop分支新建一个checkout分支,并且切换过去
// 此处进行一些开发
git checkout develop // 切换到develop分支
git pull origin develop // 更新develop的代码,因为可能有人会在你工作的时候提交代码
git checkout feature-A
git rebase -i // 合并提交
git rebase develop // 把develop新增的内容添加到feature中
git checkout develop // 切换到develop
git merge --no-ff feature-A // 把feature合并到develop
git push origin develop // 推送develop
开发者B在开发者A提交后进行改动
git clone URL.git // 克隆仓库
git checkout develop // 切换到develop分支
git checkout -b feature-A develop // 从develop分支新建一个checkout分支,并且切换过去
// 此处进行一些开发
git checkout develop // 切换到develop分支
git pull origin develop // 更新develop的代码,因为可能有人会在你工作的时候提交代码
git checkout feature-A
git rebase -i
git rebase develop // 把develop新增的内容添加到feature中
// 这里会出现冲突,因为A已经提交代码了,B的develop发生了改动,feature就不能直接merge到develop里面
// 进行冲突处理
git add -A // 冲突处理完成后记得执行add操作
git rebase --continue // 然后要继续rebase操作
git checkout develop // 切换到develop
git merge --no-ff feature-A // 把feature合并到develop
git push origin develop // 推送develop
使用文字进行描述流程,即为:
- 建立分支,进行改动
- 使用rebase命令检查是否有冲突
- 若有冲突,则解决冲突,解决之后,要使用git add命令添加改变,并且使用rebase --continue命令继续未完成的rebase操作
- 最后把feature合并到develop分支之中
- rebase命令:
-i
参数:将本地的多次提交合并为一个- 将最新的分支同步到本地,需要手动解决冲突
- merge --no-ff 参数:用途:禁止快进式合并,
--no-ff
会让 Git 生成一个新的提交对象。让master更干净一点
常用命令
git add
git status 查看当前状态,commit前最好看一下
git commit -m ‘message’ 提交
git branch 查看本地分支, -a参数:所有分支,-r参数:remote的所有分支,-D参数:删除本地库
git remote add origin xxx: 添加remote记录
git push origin master: 更新远程服务器上的master分支
git checkout xxx 切换到xxx分支,-b参数:建立一个新的本地分支并且切换
git merge xxx:将xxx与当前分支合并
git rm 删除文件,–cached参数:仅仅从暂存区删除
git clone xxx:克隆代码
参考网站
- https://blog.csdn.net/u012501054/article/details/88787428
- https://blog.csdn.net/nrsc272420199/article/details/85555911
- https://blog.csdn.net/halaoda/article/details/78661334