Git(十)、多人协作

一、推送分支修改到远程仓库

    1、当你从远程克隆时,实际Git自动把本地master分支和远程master分支对应起来了,远程仓库默认名称origin
    2、查看远程库信息git remote 或者 git remote -v
        
        

    3、推送修改:git push origin master/git push origin dev
        

    4、但是并不一定所有分支都要推送到远程库(总之看你的心情):
        【1】master分支是主分支,需要同步
        【2】dev分支是开发分支,所有成员在上面工作,需要同步
        【3】bug分支只用于本地修改bug,不同步
        【4】feature分支是否推送到远程,取决于你和你的小伙伴是否一起在上面开发

二、抓取分支

    1、现在,模拟一个你的小伙伴,可以在另一台电脑上(注意把SSH key加到github),或者同一个电脑的另外一个目录下克隆
    2、当你的小伙伴远程克隆的时候,Git_6里面只能看到master分支,不信可以用git branch命令看
        
        

    3、现在,你的小伙伴要在dev分支上开发,就必须创建远程origin的dev分支到本地,使用:git checkout -b dev origin/dev
        

    4、再git branch,就能看到dev分支了,现在,你的小伙伴就可以在dev分支上开发,并推送远程库了
        
        

    5、你的小伙伴推送后,恰巧此时你又修改了test.txt这个文件,再提交推送,则会报错。因为你们两者有冲突,Git也提示我们,你需要git pull把最新分支从origin/dev上拉取下来(拉取失败的话看下面附录)
        
        
        

    6、修改冲突后提交
        



总结:

因此,多人协作的工作模式通常是这样:

  1. 首先,可以试图用git push origin branch-name推送自己的修改;

  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

  3. 如果合并有冲突,则解决冲突,并在本地提交;

  4. 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!

如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name

这就是多人协作的工作模式,一旦熟悉了,就非常简单。

### Git多人协作的最佳实践与分支管理 #### 一. 分布式版本控制系统的特性 Git一个分布式版本控制系统,专为处理大规模项目而设计。它支持开发者在本地仓库中独立完成开发任务,并通过远程仓库实现代码的共享和合并[^1]。 #### 二. 功能分支工作流 (Feature Branch Workflow) 功能分支工作流是一种常见的多人协作方式。在这种模式下,每个新功能都应在单独的功能分支上开发。以下是具体的操作流程: 1. **创建功能分支** 基于`master`或其他稳定分支创建新的功能分支。例如: ```bash git checkout -b feature-xyz ``` 创建前应确保当前分支是最新的状态,可以通过以下命令同步最新的`master`分支: ```bash git checkout master git pull origin master ``` 2. **提交更改** 在功能分支上进行开发并定期提交更改: ```bash git add . git commit -m "Add new functionality" ``` 3. **推送至远程仓库** 将功能分支推送到远程仓库以便其他团队成员查看或测试: ```bash git push origin feature-xyz ``` 4. **解决冲突** 如果在推送过程中遇到冲突,需先拉取远程分支并与本地分支合并: ```bash git pull --rebase origin feature-xyz ``` 若存在冲突,则手动解决后继续提交。 5. **合并回主分支** 当功能开发完成后,将其合并到`master`或`dev`分支。通常会发起Pull Request(PR),由团队负责审核后再执行合并操作[^2]。 #### 三. 同一分支下的多人协作 在同一分支下进行多人协作时,可能会频繁发生冲突。为了避免这种情况,建议遵循以下步骤: 1. 定期从远程分支获取最新改动以减少冲突的可能性: ```bash git pull origin branch-name ``` 2. 如果发现冲突,按照提示逐一解决问题文件中的标记部分(`<<<<<<<`, `=======`, `>>>>>>>`),保存修改后的文件,随后重新提交: ```bash git add conflicted-file.txt git commit -m "Resolve conflict in file" ``` 3. 成功解决所有冲突后再次尝试推送自己的变更: ```bash git push origin branch-name ``` #### 四. 不同分支间的多人协作 当多个开发者分别负责不同模块时,推荐采用分支隔离策略来降低干扰风险。例如: 1. 开发者A基于`master`创建名为`feature-a`的新分支; 2. 开发者B同样基于`master`创建另一个分支`feature-b`; 3. 只有当各自的任务完成后才会将这些分支合并回到主线。 为了保证数据一致性,在切换分支之前务必确认基础分支已更新至最新版[^3]: ```bash git checkout master git pull origin master ``` #### 五. 主干分支保护机制 对于重要的生产环境分支(如`main`/`master`),应当启用严格的权限管理和自动化测试工具链。只有经过充分验证的PR才能被批准合入其中[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值