用户拉取代码 从bitbucket拉取代码
根据管理员设置的A,B仓库
A仓库 用于用户代码提交: http://192.168.201.71:7990/scm/g/dest-fork.git
B仓库 用于提交的代码合并: http://192.168.201.71:7990/scm/g/dest.git
一、用户拉取代码的过程如下:
1、应该设置从B仓库 clone代码 git clone http://192.168.201.71:7990/scm/g/dest.git
克隆好B仓库的代码后修改remote 为A仓库的代码:git remote set-url origin http://192.168.201.71:7990/scm/g/dest-fork.git
2、从B仓库clone 代码后 设置remote 为A 提交的时候 提交到A仓库
2、需要提交代码的时候 git add git commit git push -u origin master即可
3、提交后等待reviewer审核
4、审核通过后会自动合并到远程仓库
5、若被审核拒绝,需要用户手动执行如下命令,以消除bitbucket仓库上当前没有审核通过的commit
git reset --hard commit
git push -u origin master --force
6、找到左边设置中pull request 然后点击creat pull request 进行设置如下
源仓库选择dest-fork, 分支选择master
目的仓库选择dest, 分支选择master,
设置完成后点击continue
通知review去审核
代码编译通过 reviewer审核通过后才能提交到远程仓库
如果代码审核失败,需要用户手动执行
git reset --soft commit
git push -u origin master --force
二、管理员需要预先配置的操作
1、设置用户需提交的仓库地址 以下简称A仓库
A仓库: http://192.168.201.71:7990/scm/g/dest-fork.git
B仓库: http://192.168.201.71:7990/scm/g/dest.git
2、设置远程仓库地址,以下简称B仓库,用于把用户提交的仓库代码合并过去
3、设置给A仓库添加指定的reviewer
4、添加reviewer账户 和普通用户
5、代码合并要满足的条件 编译通过和reviewer审核通过后才能merge到远程B仓库
如下图所示右侧build显示是绿色代表编译通过
三、reviewer 怎么样去审核代码
reviewer审核代码操作流程如下
1、以reviewer账户登录bitbucket找到对应的dest-fork.git仓库
注意:审核的人 必须以自己的账户登录然后再去审核代码
找到需要自己review的commit 然后在右上角点击approve 然后点击merge把代码合并到远程仓库, 或者点击decline 拒绝本次提交、
merge完成后就可以看到需要合并的commit test 19已经被合并到dest仓库上去了
有2笔以上的提交 提交到A仓库上
reviewer账户登录 设置Create pull request 如下图;一笔一笔的进行合并
四、针对一些可能出现的问题分析
1、如何实现官网的仓库 阻止 避免 抓下来的 是官方的仓库
或者抓到了官方的仓库后 又提交到官方的仓库了
设置如下 选择enable 使能verify commit
则每次提交的时候 如果提交到官方的仓库的代码 则会被reject掉
2、多个100行 被打回来 其实是只有 几行需要修改
可以再加一个提交两个一起merge吗
如果第一次一笔commit被拒绝后,本地做一点微小的修改后 又提交了一笔
也就是A仓库在原有的基础上增加了两笔commit
在B仓库 创建pull request 直接合并两笔提交即可
3、多个Push 时序 多个Push到A仓库 怎么控制好时序同步的问题
有多个人往A仓库 push提交代码 怎么控制时序同步,
可以通过git 命令来消除其中一笔commit
git rebase -i commit-id
假设一分钟A仓库内有三笔不同的用户commit提交,
经过审核后 只要其中一笔审核是通过的
怎么Merge这其中一笔 并拒绝另外两笔commit提交