GIT学习--(18) GitHub多人协同工作(二)

2024-10-15 12:22:02

1、继续使用上篇经验的相关配置(可参考上面的经验引用),我们有两个本地仓库模拟两个协同工作的用户,其中一个用户名称为 Zhan爿讥旌护gSan ,一个用户名称为 LiSi ,两者均工作在 mileStone 分支上!首先ZhangSan修改了一个文件(图示文件: 3.GIT_Important_Command_List.txt), 并将这些变更提交到了本地仓库中,顺手也推送到了远程仓库分支上!注意这里直接使用了 git push 而不是以前的 git push 远程仓库别名 本地仓库分支名称 这种形式,因为git push 默认使用的远程仓库名称是 origin 并且默认推送当前分支, 我们这个仓库的远程仓库别名正好是这个,所以可以直接使用 git push 这种无参数的命令格式。

GIT学习--(18) GitHub多人协同工作(二)GIT学习--(18) GitHub多人协同工作(二)

2、接着 LiSi 也开始修改了该文件,同上步骤中 ZhangSan 修改的文件,但修改的区域不冲突(非相同行,图1示),然后 LiSi 理所当然的进行了提交并推送,毫无悬念,在推送时又报错了,这个错误和上篇经验中遇到的错误是一样的,都是说:我们本地分支对应的远端分支上包含有我们本地没有的内容,这通常是因为有人向这个分支做了push操作......(图2示)。注意,这步中我们在运行 git commit 命令时,使用了参数 -am , 这个参数运行我们直接将工作区的内容提交,无需先执行 git add 操作,但实际工作中不推荐这么写。

GIT学习--(18) GitHub多人协同工作(二)GIT学习--(18) GitHub多人协同工作(二)

3、同样按照Git报错信息中的提示进行处理(fetch first), 我们使用 git fetch 和 git merge 对 LiSi 的本地仓库进行一下处理 (图1示)我们再到 LiSi 的本地仓库看一下这个被修改的文件,可以看到 ZhangSan 所做的变更已经出现了(图2示)!这样看,Git已经将两个用户的变更自动进行了合并,这说明如果多个用户对同一个分支上的同一个文件进行变更,只要没有行冲突(不同区域的变更,这也是实际中经常遇到的情形),Git 会进行自动合并,无须人工干预!做了如上操作,LiSi 也可以愉快的进行推送了!和上一步骤的推送比较,这里就无法直接使用 git push 的形式,因为在这个本地仓库中,远程仓库的名称不是默认的 origin (重命名为 GitHub), 所以必须使用 git push 远程仓库别名 本地分支名称 的形式(图3示)。

GIT学习--(18) GitHub多人协同工作(二)GIT学习--(18) GitHub多人协同工作(二)GIT学习--(18) GitHub多人协同工作(二)

4、这里我们再顺带介绍一个 git pull 命令,这个命令其实是 git fetch 和 git merge 命令的合并形式,通常当我们准备在一个分支上开始工作前,先运行这个命令,将本地分支进行更新,其使用方式同 git push , 如果你的远程仓库名称为默认的 origin, 则可以直接运行 git pull 命令即可,否则需要使用 git pull 远程仓库名称 本地仓库分支名称 的命令格式。

GIT学习--(18) GitHub多人协同工作(二)
猜你喜欢