git协同开发与冲突解决

协同开发流程

  • 基本的使用方法

image-20240513215752115

# 1 多人开发同一个项目
	-张三:本地 版本库
    -李四:本地 版本库
    -我:  本地 版本库
    ----远程仓库:本地版本库内容--》推送到远程仓库-----
    
# 2 演示(我是项目管理员)
	-1 增加几个开发者
    -2 其它开发者:把代码拉到本地
    	git clone https://gitee.com/liuqingzheng/luffy_api.git
    -3 其它开发者:使用pycharm打开
    	-在utils-->init.py中第五行加入 print('111')
    -4 其它开发者:提交代码
    	git add .
        git commit -m '改了xxx'
        git push origin master # 正常能推上去
    -5 我:进入到仓库中,就能看到它的提交了
    -6 我:本地修改--utils---init.py
    	git add .
        git commit -m '改了xxx' 
        # git push origin master # 报错
        git pull origin master
        git push origin master

1. 作为项目管理员

1.1 添加开发者
  • 在Gitee项目设置中添加新的开发者,并为他们分配适当的权限。
1.2 初始设置
  • 如果你还没有本地仓库,可以使用

    git clone
    

    命令从远程仓库克隆代码到本地。

    git clone https://gitee.com/liuqingzheng/luffy_api.git
    
  • 在本地进行初始的开发和提交。

2. 其他开发者

2.1 克隆项目
  • 开发者使用

    git clone
    

    命令从远程仓库克隆代码到本地。

    git clone https://gitee.com/liuqingzheng/luffy_api.git
    
2.2 使用PyCharm打开项目
  • 打开PyCharm,选择“Open”选项,然后定位到刚才克隆下来的项目文件夹。
2.3 修改代码并提交
  • 在PyCharm中修改代码,例如在utils/init.py文件的第五行加入print('111')

  • 在PyCharm的VCS(Version Control System)工具窗口或使用命令行提交更改。

    git add .  
    git commit -m "在init.py中添加了打印语句"
    
  • 推送更改到远程仓库。

    git push origin <branch-name>  # 替换<branch-name>为你的分支名,例如master或feature-branch
    

3. 合并代码(管理员或其他有权限的开发者)

3.1 拉取最新代码
  • 在你的本地仓库中,拉取远程仓库的最新代码,确保你的本地仓库是最新的。

    git pull origin <branch-name>  # 替换<branch-name>为你要拉取的分支名
    
3.2 解决冲突(如果有)
  • 如果在拉取代码时遇到冲突,使用文本编辑器解决冲突,然后重新提交。
3.3 合并分支(如果需要)
  • 如果你在使用特性分支进行开发,并且该分支的代码已经通过测试并准备合并到主分支,你可以使用git merge命令或在Gitee等平台上进行合并请求(merge request)。
3.4 推送合并后的代码
  • 在合并后,将更改推送到远程仓库。

    git push origin <branch-name>  # 替换<branch-name>为你要推送的分支名
    

注意事项

  • 确保所有开发者都使用相同的分支策略和工作流程。
  • 定期与团队成员沟通,确保大家的工作不会互相干扰。
  • 使用特性分支来开发新功能或修复问题,而不是直接在主分支上工作。
  • 使用代码审查(code review)来确保代码质量。
  • 在合并代码之前,确保所有的测试都通过。

冲突解决

【 1 】简单的解决方法

# 1 由于有多人开发,一定会出冲突
# 2 出现冲突的原因如下:
	1 多人在同一分支开发:改了同样文件
    2 分支合并
  
# 注意:如果多人在同以分支开发,不想解决冲突
	-频繁拉取代码
# 3 演示:多人统一分支开发出冲突
	-1 张三改了 utils-init.py-->9行,并且提交了
    -2 我没有拉去代码,直接也改了第9行,并且提交到本地版本库
    -3 我拉去远程代码---》拉去下来--》本地代码合并----》一合并出冲突了
    -4 冲突样子
        <<<<<<< HEAD
        print('111222') # 我的代码
        =======
        print('111222') # 别人代码
        >>>>>>> d93673fc5144d64cb4c31cb34e7a16280fdcb39f
	-5 解决冲突
    	-保留两个人的代码
        -保留它的代码
        -保留我的代码,删除它的代码
	-6 本地提交
    -7 提交到远端
  • 具体演练

初始状态

假设 utils/init.py 文件的初始内容是:

# utils/init.py  
print("Initial content")

张三的操作

  1. 张三拉取代码(假设这是第一次,所以直接就是初始状态)
  2. 张三修改 utils/init.py
# utils/init.py  
print("Initial content")  
print("Added by Zhang San")
  1. 张三提交并推送到远程
git add utils/init.py  
git commit -m "Added a line by Zhang San"  
git push origin main

你的操作

注意:此时你没有拉取张三的更改。

  1. 你直接修改 utils/init.py
# utils/init.py  
print("Initial content")  
print("Added by You")
  1. 你尝试提交到本地(这一步是可选的,但展示了你的本地提交)
git add utils/init.py  
git commit -m "Added a line by You"

冲突出现

  1. 你尝试拉取远程代码
git pull origin main

Git 会提示有冲突,并告诉你需要手动解决。

解决冲突

  1. 打开 utils/init.py 文件
    你会看到类似这样的冲突内容:
# utils/init.py  
print("Initial content")  
<<<<<<< HEAD  
print("Added by You")  
=======  
print("Added by Zhang San")  
>>>>>>> main
  1. 手动解决冲突
    例如,你选择合并两个人的更改,但你可能需要修改一下以保持代码整洁:
# utils/init.py  
print("Initial content")  
print("Added by You")  
print("Also added by Zhang San")
  1. 保存文件并标记为已解决
    使用 git add 命令将已解决的冲突文件标记为已解决:
git add utils/init.py

提交并推送

  1. 提交更改
git commit -m "Resolved merge conflict in utils/init.py"
  1. 推送更改到远程
git push origin main

现在,你已经成功解决了冲突,并将更改推送到了远程仓库。

注意事项

  • 在实际开发中,冲突可能会更复杂,涉及多个文件的多个更改。但基本的解决步骤是相同的。
  • 使用版本控制系统(如 Git)时,重要的是要经常与团队成员沟通,并在开始工作之前拉取最新的代码。这有助于减少冲突的发生。
  • 当遇到冲突时,不要害怕。Git 提供了很好的工具来帮助你解决它们。

image-20240513221638844

  • 19
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当多个人同时对同一个文件进行修改时,就可能会发生冲突。为了解决这个问题,你可以采取以下步骤: 1. 提前了解代码库的结构和规范:在开始协同开发之前,了解代码库的结构和规范非常重要。这样可以避免不必要的冲突和混乱。 2. 频繁地进行代码提交:经常提交代码可以减少冲突的可能性。每次提交之前,先使用 git pull 命令来更新本地代码库,以确保你的代码是最新的。 3. 使用分支进行开发:为每个开发任务创建一个独立的分支,这样可以避免直接在主分支上进行修改,减少冲突的风险。每个开发人员在自己的分支上进行开发,并定期将分支合并到主分支或其他共享分支上。 4. 解决冲突:如果发生冲突Git 会提示你手动解决冲突。打开有冲突的文件,查看冲突部分,手动修改以解决冲突。修改完成后,使用 git add 命令将文件标记为已解决冲突,并最后使用 git commit 命令提交更改。 5. 进行代码审查:在合并分支或提交代码之前,进行代码审查是一个好习惯。其他开发人员可以帮助你发现潜在的冲突或问题,并提出改进意见。 6. 沟通和协调:与团队成员保持良好的沟通和协调非常重要。及时解决冲突、讨论问题,并确保大家都在相同的开发路线上。 通过上述步骤,你可以有效地管理多人协同开发中的冲突,并保持代码库的整洁和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值