git 协同开发
定义: 多个人同时开发一个项目, 即要做好版本的管理,又要做好代码的合并

图解:
重要点:
在多人开发同一项目时, 在提交代码到远程仓库时, 需先拉去远端的代码到本地,这样保证获取的是最新版的远程代码,然后再执行提交代码命令.
下图有git pull origin master
解释: 从远程origin地址的master分支获取代码并合并到本地当前分支
合并前应该将本地分支切到跟远程分支一样的分支
->git pull 远程地址 分支名 是从远程分支获取代码并合并到到本地当前分支

步骤:
步骤1:
在某分支新增/修改代码, 提交到本地该分支的版本库; 若还需要将其合并到其他分支, 则合并,然后若有代码冲突解决冲突, 然后提交到本地版本库(也就是说切换分支后的最后一步操作也是git commit -m '注释')
步骤2:
拉取远程代码到本地
步骤3:
有冲突代码解决冲突, 然后提交到本地版本库
步骤3:
将本地版本库的代码提交到远程仓库
<可能的冲突1>
若你准备提交的跟别人是同一分支,那么可能存在你们修改的都是同一个文件的内容(假设都修改的xxx.py的第一行),那么可能会有冲突,这时需先解决冲突,然后再提交代码到远程仓库

<可能的冲突2>
合并分支时出的冲突
步骤:
->合并分支(若需要) ->(有冲突,处理冲突, 没有下一步) -> 执行git add . -> git commmit -m '注释' -> 再git pull xxxxx下 -> git log 中看最后修改的人和时间, 以防止你刚才操作时又有人往远程提交代码 ->确认刚才那一小会人没人往远端提交代码->git push 远程地址 远程分支名(即把你的代码提交到远端)
演示步骤1
新增两个分支,如dev和bug分支
git branch dev, git branch bug

演示步骤2
切到bug分支: git checkout bug

演示步骤3 ---修改/新增bug分支代码, 将bug分支合并到master分支
在bug分支上, 修改/新增代码
执行命令: 提交到暂存区
执行命令: 提交到版本库
执行命令: 切到master 分支
执行命令: 将bug分支合并到master分支 ->git merge bug

演示步骤4 ------修改/新增dev分支代码, 将dev分支合并到master分支
在dev分支上, 同一位置修改/新增代码
执行命令: 提交到暂存区
执行命令: 提交到版本库
执行命令: 切到master 分支
执行命令: 将bug分支合并到master分支
演示步骤5 效果
信息显示合并失败

在pycharm中显示具体的报错内容

演示步骤6

演示步骤7
解决完冲突后, 因已在分支master上, 再执行提交到本地暂存区, 提交到本地版本库命令

演示步骤8 删除bug分支和dev分支, 以后需要再基于最新的master分支重新创建这分支

pycharm查看更改日志
--- 等价于命令git log, 其比git log更详细
