DICOM:DICOM3.0標準中文版開源書籍編輯之」github倉庫合併「

背景:

做爲分佈式版本控制系統的表明git和github已經成爲大多數開發人員首選版本控制工具。因爲其不一樣與SVN的集中式版本管理,所以在協同工做時的方式略有不一樣,下面讓咱們來對比分析一下(這裏以本人的DICOM3.0標準中文版開源書籍爲例):git

合併他人的Github倉庫(Merge Other’s Repo on Github):

1. 查看當前狀態

F:\GitTest\zssuretest\DICOM-Chinese>git status
On branch master
Your branch is up-to-date with 'origin/master'.

nothing to commit, working directory clean

F:\GitTest\zssuretest\DICOM-Chinese>git remote -v
origin  https://github.com/zssure-test/DICOM-Chinese.git (fetch)
origin  https://github.com/zssure-test/DICOM-Chinese.git (push)
other   git@github-test:zssure-test/DICOM-Chinese (fetch)
other   git@github-test:zssure-test/DICOM-Chinese (push)
zssure-thu-origin       https://github.com/zssure-thu/DICOM-Chinese.git (fetch)
zssure-thu-origin       https://github.com/zssure-thu/DICOM-Chinese.git (push)

F:\GitTest\zssuretest\DICOM-Chinese>git pull
Already up-to-date.

2. 添加他人倉庫

F:\GitTest\zssuretest\DICOM-Chinese>git remote -v
origin  https://github.com/zssure-test/DICOM-Chinese.git (fetch)
origin  https://github.com/zssure-test/DICOM-Chinese.git (push)
other   git@github-test:zssure-test/DICOM-Chinese (fetch)
other   git@github-test:zssure-test/DICOM-Chinese (push)
zssure-thu-origin       https://github.com/zssure-thu/DICOM-Chinese.git (fetch)
zssure-thu-origin       https://github.com/zssure-thu/DICOM-Chinese.git (push)

F:\GitTest\zssuretest\DICOM-Chinese>git remote add kuangbi-mnhwa https://github.com/mnhwa/DICOM-Chinese.git

F:\GitTest\zssuretest\DICOM-Chinese>git remote -v
kuangbi-mnhwa   https://github.com/mnhwa/DICOM-Chinese.git (fetch)
kuangbi-mnhwa   https://github.com/mnhwa/DICOM-Chinese.git (push)
origin  https://github.com/zssure-test/DICOM-Chinese.git (fetch)
origin  https://github.com/zssure-test/DICOM-Chinese.git (push)
other   git@github-test:zssure-test/DICOM-Chinese (fetch)
other   git@github-test:zssure-test/DICOM-Chinese (push)
zssure-thu-origin       https://github.com/zssure-thu/DICOM-Chinese.git (fetch)
zssure-thu-origin       https://github.com/zssure-thu/DICOM-Chinese.git (push)

3. 下載他人倉庫

F:\GitTest\zssuretest\DICOM-Chinese>git branch -v
* master bb0d864 Merge branch 'master' of https://github.com/zssure-test/DICOM-Chinese

F:\GitTest\zssuretest\DICOM-Chinese>git fetch kuangbi-mnhwa
remote: Counting objects: 14, done.
remote: Total 14 (delta 0), reused 0 (delta 0), pack-reused 14
Unpacking objects: 100% (14/14), done.
From https://github.com/mnhwa/DICOM-Chinese
 * [new branch] master -> kuangbi-mnhwa/master * [new branch] pr/1 -> kuangbi-mnhwa/pr/1

4. 導出他人倉庫到新的分支

F:\GitTest\zssuretest\DICOM-Chinese>git checkout -b part5-kuangbi kuangbi-mnhwa/master
Branch part5-kuangbi set up to track remote branch master from kuangbi-mnhwa.
Switched to a new branch 'part5-kuangbi'

F:\GitTest\zssuretest\DICOM-Chinese>git branch -v
  master        bb0d864 Merge branch 'master' of https://github.com/zssure-test/DICOM-Chinese
* part5-kuangbi 7c23aba 6.1.2.5----6.1.3

5. 合併他人倉庫

F:\GitTest\zssuretest\DICOM-Chinese>git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.

F:\GitTest\zssuretest\DICOM-Chinese>git branch -v
* master        bb0d864 Merge branch 'master' of https://github.com/zssure-test/DICOM-Chinese
  part5-kuangbi 7c23aba 6.1.2.5----6.1.3

F:\GitTest\zssuretest\DICOM-Chinese>git merge part5-kuangbi
Merge made by the 'recursive' strategy.
 Figure/Part 5/PS3.5_Table 6.1_1.jpg                | Bin 0 -> 131815 bytes
 ...t 5\357\274\232Data Structures and Encoding.md" | 353 +++++++++++++++++++++ 2 files changed, 353 insertions(+) create mode 100644 Figure/Part 5/PS3.5_Table 6.1_1.jpg create mode 100644 "Part 5\357\274\232Data Structures and Encoding.md"

6. 提交修改到github中心倉庫

F:\GitTest\zssuretest\DICOM-Chinese>git status
On branch master
Your branch is ahead of 'origin/master' by 5 commits.
  (use "git push" to publish your local commits)

nothing to commit, working directory clean

F:\GitTest\zssuretest\DICOM-Chinese>git push origin
Username for 'https://github.com': zssure-test
Password for 'https://zssure-test@github.com':
Counting objects: 19, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (15/15), done.
Writing objects: 100% (16/16), 123.50 KiB | 0 bytes/s, done.
Total 16 (delta 6), reused 0 (delta 0)
To https://github.com/zssure-test/DICOM-Chinese.git
   bb0d864..63368d4  master -> master

F:\GitTest\zssuretest\DICOM-Chinese>

請求他人合併本身的Github倉庫(Pull Requests on Github):

以前在系列博文DICOM:DICOM中文版開源書籍協同編輯之「Github Pull Requests」已經介紹過使用Github提供的Pull Requests來實現多人協同編輯的具體步驟,這裏就不詳細介紹了,大體說一下操做流程,具體示例請閱讀以前的博文。github

1. Fork他人倉庫

這裏寫圖片描述

2. 修改本身的倉庫

git clone git@github.com:zssure-test/DICOM-Chinese.git
git config user.name "zssure-test"
git config user.email "zssure@163.com"
git config --local
#此處任意修改README.md的內容
git status #查看修改狀態
git add . #添加全部修改
git commit -m "zssure git bash test" #提交修改到本地倉庫
git push origin master #push修改到github

3. 使用Github中的Pull Requests發出合併請求

這裏寫圖片描述

4. 等待別人審覈後合併完成

這裏寫圖片描述
這裏寫圖片描述
在Github的主頁上可以看到各成員合併的流程和結果:
這裏寫圖片描述


bash

備註:

上面提到的合併他人倉庫,用於本身主動將他人的修改合併到本身的倉庫中;請求他人合併本身的修改,用於將本身的修改同步給組內其餘人員,主要是用於將本身的修改提價到一個公共的倉庫中,做爲最終的發版庫。
經過上述兩種基本能夠完成多人協做工做,固然在具體應用過程當中還會遇到回滾衝突撤銷等問題,後續會繼續給出實際應用過程當中的示例。


做者:zssure@163.com
時間:2015-10-10




分佈式

相關文章
相關標籤/搜索