git 多人协作开发

通过git实现多人协作远程开发

在同分支下协作开发

目标:远程的master分支下的文件代码增加N行…
实现:由开发者1新增N行…代码,由开发者2新增N行…代码。
条件:在一个分支下协作完成

根据前个章节的内容我们已经通过git来与远程仓库建立了联系。
这里我们先在gitee中创建一个分支,但是我们的本地仓库还没有与更新后的远程仓库建立连接,现在的仓库是这样的⬇️
在这里插入图片描述

  • 通过以下命令更新查看
#拉取远程仓库
git pull
  • 查看远程分支
git branch -r

这时候我们的仓库重新建立了联系
在这里插入图片描述

通过两个系统模拟开发者1和开发者2
新建一个分支,通过以下命令将本地仓库分支追踪到远程仓库的分支,形成联系。

# 可以通过新建分支追踪远程仓库分支
git checkout -b branch_name origin remoteBranch_name
#如果忘记追踪直接新建,可以直接通过以下命令进行追踪
git push --set-upstream origin branch_name

查看本地仓库和远程仓库是否建立联系

git branch -vv

#查看本地仓库和远程仓库联系分支和本地仓库分支
git branch -vv -a

这时候开发者1已经通过push提交到远程仓库,开发者2提交到远程仓库会报错,因为当时clone的时候没有新增的代码,而开发者1的代码已经提交,而开发者2继续提交则不知道同一行的代码不知道保存谁的代码,会进行报错冲突,这时候需要我们人工解决冲突。

在这里插入图片描述


这时候使用以下命令,将远程仓库的代码拉到本地来,将冲突进行合并,在进行add commit 和push提交即可。

git pull

在这里插入图片描述


  • 将分支合并到master中
    1.提交申请单

在企业工作中,开发人需要通过填写申请单来让审查者查看是否需要满足要求,这时候,我们需要写一份申请单来让审查者进行查验。
在这里插入图片描述
在这里插入图片描述


2.通过本地仓库进行操作合并
在这里插入图片描述
在这里插入图片描述

最后我们删除分支即可
在这里插入图片描述
在这里插入图片描述
最后查看是否删除

git branch -a

git remote show origin

在不同分支下协作开发

目标:远程的master分支下新增function1和function2文件
实现:由开发者1新增function1,由开发者2新增function2。
条件:在不同分支下协作完成
这里的分支是独立分支,是私有的,不会产生冲突!

通过本地创建分支,然后通过本地将分支传入远程仓库

# 创建本地仓库命令
git checkout -b branch_name
# ...编辑文件
# add commit操作
# 最后通过以下命令将分支 push到远程仓库
git push origin branch_name

开发者1和开发者2创建不同分支,操作相同
在这里插入图片描述


这里如果开发者2有急事,需要交给开发者1来负责,则开发者1建立开发者2的本地仓库与远程仓库通过pull联系,然后进行开发。
当开发者2回来后,因为开发者1已经开发了一部分代码,这时候如果pull之后可能会存在冲突,这时候我们需要通过以下命令

git pull origin branch_name

在这里插入图片描述
最后将开发者1代码与master分支合并(不再master分支解决冲突),最后master进行push提交即可并删除
在这里插入图片描述


### Git多人协作开发的最佳实践 在多人协作开发环境中,Git 是一种强大的版本控制工具,可以帮助团队高效地管理和维护代码库。为了确保项目的顺利推进并减少冲突的可能性,以下是一些关于 Git 多人协作开发的最佳实践: #### 1. 使用分支策略 采用清晰的分支策略是多人协作的核心之一。常见的分支模型有 **Git Flow** 和 **GitHub Flow**。 - **Git Flow**: 这种模式通常用于较复杂的项目,涉及多个长期存在的分支,如 `main`、`develop`、功能分支 (`feature/*`)、发布分支 (`release/*`) 和修复分支 (`hotfix/*`)。 - **GitHub Flow**: 更加简单灵活,适用于持续交付场景。主要依赖于 `main` 分支和短期的功能分支 (`feature/*`) 或补丁分支 (`patch/*`)。 通过遵循这些最佳实践,不仅可以提高代码质量,还可以增强对 `git add` 的理解,从而更自信地处理变更[^1]。 #### 2. 配置全局用户名和邮箱 每位开发者都应该设置自己的全局用户名和邮箱地址,以便每次提交都可以被正确标记归属信息: ```bash git config --global user.name "Your Name" git config --global user.email "[email protected]" ``` #### 3. 提交消息规范 编写清晰且有意义的提交消息对于后续审查和调试至关重要。建议按照如下格式撰写提交消息: - 主题行(不超过50字符) - 空白行分隔主题与正文描述 - 正文部分具体说明改动原因及其影响 如果未指定编辑器来修改提交信息,则可以通过环境变量 `GIT_EDITOR=` 来触发默认行为[^3]。 #### 4. 定期同步远程仓库 保持本地副本始终最新非常重要。这包括定期拉取最新的更改以及解决可能产生的合并冲突: ```bash # 更新前先保存当前工作状态 git stash save 'message' # 获取上游更新并与之合并 git pull origin main # 应用之前存储的状态 git stash pop ``` #### 5. 制定代码评审机制 引入 Pull Request (PR) 流程可以让其他成员参与审核新加入的内容。这样不仅有助于发现潜在错误,也能促进知识共享和技术提升。 #### 6. 自动化测试集成 尽可能多地利用 CI/CD 工具自动运行单元测试和其他验证过程,在早期阶段捕捉缺陷。 --- ### 示例脚本:自动化创建特性分支 下面是一个简单的 Bash 脚本来帮助快速启动一个新的特性和关联至 Jira ticket ID: ```bash #!/bin/bash read -p "Enter the feature name: " FEATURE_NAME JIRA_TICKET=$(echo "$FEATURE_NAME" | cut -d'-' -f1) if [[ $JIRA_TICKET =~ ^[A-Z]+-[0-9]+$ ]]; then BRANCH="feature/${JIRA_TICKET}-${FEATURE_NAME}" echo "Creating branch ${BRANCH}..." git checkout -b "${BRANCH}" develop else echo "Invalid input, please use format like PROJECTNAME-XXXX-feature-name." fi ``` ---
评论 65
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值