通过文件协作

git 可以通过补丁文件进行协作(使用 email 传送补丁文件)

首先通过 git clone 创建一个镜像版本库,使用 git branch -a命令查看所有分支

$ git clone http://linuxtoy.org/path1  [local]2
$ cd [local]
$ git branch -a
* master
  origin/HEAD
  origin/master  

1

原始版本库路径

2

镜像版本库路径。它是可选的,如果没有指定,则使用和发起者同样的路径(文件夹名称)

其中origin 为原始版本库镜像,在 master 分支上的工作,要生成对于 origin 的补丁,origin 必须与原始版本库保持一致,不要试图修改它

git fetch origin   #更新 origin 分支。如果 origin 分支不是最新的原始版本库,会产生错误的补丁文件
git rebase  origin  #将工作迁移到最新原始版本库基础上
git format-patch origin #生成补丁文件

生成的补丁文件为 0001-[备注].patch,发起者得到补丁后,使用 git am 命令将这个补丁应用到版本库

git checkout -b patched 1
git am 0001-[备注].patch 2 
git checkout master
git diff master patched 
git merge patched  

1

为谨慎起见,创建一个名为 “patched” 的分支,切换到此分支

2

在 “patched” 分支中应用补丁