Git 多人协同开发流程

1、设置全局签名

        1)git config --global user.name "张三"
        2)git config --global user.email "zhangsan@163.com"

2、在工作空间克隆develop分支到本地

        1)git clone -b develop http://gitlab.******.git

3、创建并切换到feature分支,不要push到远程

        1)git checkout -b feature-<姓名全拼写>,如:feature-zhangsan
        2)git branch -a                                          查看当前分支,星号应该在对应feature分支上
        3)git add <filename>                                追踪本地文件到暂存区
        4)git commit -m "submit message" <filename>   提交修改文件到本地仓库(本地feature分支)

4、合并本地feature分支到远程仓库develop分支上

        1)git checkout develop                        先切换到 develop
        2)git pull --rebase origin develop         让 develop 保持最新的 HEAD
        3)git checkout feature-<姓名全拼>      再切换到 feature
        4)git rebase develop                            让 feature 的 base 是 develop 的 HEAD
        5)git checkout develop                        再切换回 develop 
        6)git merge feature-<姓名全拼>          合并feature
        7)git push origin develop                     把本地 develop 的内容 push 到远程 develop 分支

5、merge 冲突解决

git ls-files -s,该命令输出的第二列的值如果为0表示对应的文件没有冲突,合并成功,如果不为0,则表示产生了合并的冲突,其中具体的值对应的意义是:
        1:表示两个用户之前一个共同版本的对应文件内容;
        2:表示当前用户对应的文件版本;
        3:表示合并后的文件对应的远程版本
git show :n:filename,通过该命令查看对应文件的对应版本的内容。在知道了三个版本的文件内容之后,我们就可以手动的对冲突的文件进行手动修改操作了。这里需要注意的是,对应的冲突文件的内容已经发生了改变,里面对应的冲突区域的内容将会同时存在当前分支的内容和远程版本的内容。一般都是<<<<符号打头的。我们可以手动对该文件进行修改操作,然后再手动add、commit、push就可以了。

6、合并远程仓库develop的指定commit到本地feature

        1)git log查看develop分支的所有commit的HASH
        2)git checkout feature 切换到 feature 分支
        3)git cherry-pick <HASH> 合并指定的commit
        4)git cherry-pick <HashA> <HashB> 将 A 和 B 两个提交应用到当前分支,这会在当前分支生成两个对应的新提交
        5)git cherry-pick A..B 可以转移从 A 到 B 的所有提交。它们必须按照正确的顺序放置:提交 A 必须早于提交 B,否则命令将失败,但不会报错。提交 A 将不会包含在 Cherry pick 中
        6)git cherry-pick A^..B 包含提交 A

7、推送feature分支的指定commit到远程仓库develop

        1)git checkout -b temp-submit remotes/origin/develop  基于工作分支develop的最新节点创建并切换到新的分支temp-submit
        2)git cherry-pick <HASH>   (此时已经在temp-submit分支上了)cherriy-pick commit-hash到temp-submit分支上
        3)git log   查看到feature的commit-hash已经在temp-submit分支上了, 并且是最后一个提交
        4)git push  接push到工作分支develop-BEABANK就可以了
        5)git branch -d temp-submit
如果想要推送某一个特定的提交,需要保证这个提交之前没有其他的提交了,如果不是,我们可以通过git rebase -i改变提交的位置,使其之前没有其他提交

8、合并本地feature分支的多个commit为一个完整commit

当我们在本地仓库中提交了多次,在我们把本地提交push到公共仓库中之前,为了让提交记录更简洁明了,我们希望把多个提交记录合并为一个完整的提交,然后再push到公共仓库,这里我们使用命令:
        git rebase -i  [startpoint]  [endpoint]
其中-i的意思是--interactive,即弹出交互式的界面让用户编辑完成合并操作,[startpoint] [endpoint]则指定了一个编辑区间,如果不指定[endpoint],则该区间的终点默认是当前分支HEAD所指向的commit(注:该区间指定的是一个前开后闭的区间)。将某一段commit粘贴到另一个分支上

将暂存区的提交列出来供我们操作
* pick:保留该commit(缩写:p)
* reword:保留该commit,但我需要修改该commit的注释(缩写:r)
* edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)
* squash:将该commit和前一个commit合并(缩写:s)
* fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)
* exec:执行shell命令(缩写:x)
* drop:我要丢弃该commit(缩写:d)
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Git多人协作开发流程如下: 1. 创建一个Git裸服务器:由项目负责人在服务器上创建一个裸仓库(git init --bare),作为项目的中央代码仓库。 2. 开发人员克隆仓库:每个开发人员将中央代码仓库克隆到本地(git clone),这样他们就可以在自己的本地进行开发工作。 3. 开发工作:开发人员在本地进行常规的开发工作,包括修改代码、添加新功能等。 4. 提交代码:开发人员将他们的修改提交到本地仓库(git commit),这样他们的修改就被记录下来了。 5. 推送到服务器:开发人员将他们的修改推送到中央代码仓库(git push origin master),这样其他开发人员就可以看到他们的修改。 6. 拉取最新代码:开发人员在开始工作之前,应该先拉取最新的代码(git pull),以确保他们的本地代码是最新的。 7. 分支管理:团队可以使用分支来进行并行开发和功能隔离。例如,项目负责人可以创建一个发布分支(Release)用于上线前的测试,如果测试出现bug,则再创建一个修复bug的分支,然后将修复后的代码合并回发布分支和开发分支。测试完成后,发布分支和bug分支可以被删除。\[3\] 总结起来,Git多人协作开发流程包括创建中央代码仓库、克隆仓库到本地、开发工作、提交代码、推送到服务器、拉取最新代码和分支管理。这样团队成员可以在一个统一的代码仓库中进行协作开发,并且能够方便地管理和追踪代码的修改。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [git多人协作开发流程](https://blog.csdn.net/weixin_43501172/article/details/115549918)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Git多人协同开发工作流](https://blog.csdn.net/Tianxing10/article/details/123600990)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值