多语言展示
当前在线:1392今日阅读:113今日分享:31

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

在上篇经验中(查看下面的经验引用),我们介绍了多人协同工作中,不同人修改了同一分支的不同文件这种情形,本篇经验再引入另一种情形:多人协同工作时,不同人修改了同一分支的同一文件的不同区域,看看对于这种情况,我们该如何处理。0GIT学习--(18) GitHub多人协同工作(一)
工具/原料
1

一台安装了Git并可以连接网络的电脑(多个本地仓库模拟多人协同办公)

2

一个创建了远程仓库的GitHub账号

方法/步骤
1

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

3

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

4

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

注意事项
1

注意如果本地仓库配置的远程仓库别名是默认的 origin,则推送时,可以直接使用 git push 这种无参的命令格式

2

运行 git commit 命令时,使用参数 -am , 可以直接将工作区的内容提交,无需先执行 git add 操作,但实际工作中不推荐这么写

推荐信息