通过文件协作

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

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

  1. $ git clone http://linuxtoy.org/path [local]
  2. $ cd [local]
  3. $ git branch -a
  4. * master
  5. origin/HEAD
  6. origin/master

1

原始版本库路径

2

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

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

  1. git fetch origin #更新 origin 分支。如果 origin 分支不是最新的原始版本库,会产生错误的补丁文件
  2. git rebase origin #将工作迁移到最新原始版本库基础上
  3. git format-patch origin #生成补丁文件
  • 使用 git rebase 后可能会产生冲突,手动处理

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

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

1

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

2

在 “patched” 分支中应用补丁