原创 5.2 分佈式 Git - 爲項目作貢獻

爲項目作貢獻 接下來,我們來學習一下作爲項目貢獻者,會有哪些常見的工作模式。 不過要說清楚整個協作過程真的很難,Git 如此靈活,人們的協作方式便可以各式各樣,沒有固定不變的範式可循,而每個項目的具體情況又多少會有些不同,比如說

原创 4.6 服務器上的 Git - GitWeb

GitWeb 現在我們的項目已經有了可讀可寫和只讀的連接方式,不過如果能有一個簡單的 web 界面訪問就更好了。Git 自帶一個叫做 GitWeb 的 CGI 腳本,運行效果可以到 http://git.kernel.org 這樣的

原创 4.7 服務器上的 Git - Gitosis

Gitosis 把所有用戶的公鑰保存在 authorized_keys 文件的做法,只能湊和一陣子,當用戶數量達到幾百人的規模時,管理起來就會十分痛苦。每次改刪用戶都必須登錄服務器不去說,這種做法還缺少必要的權限管理 — 每個人都

原创 4.10 服務器上的 Git - Git 託管服務

Git 託管服務 如果不想經歷自己架設 Git 服務器的麻煩,網絡上有幾個專業的倉庫託管服務可供選擇。這樣做有幾大優點:託管賬戶的建立通常比較省時,方便項目的啓動,而且不涉及服務器的維護和監控。即使內部創建並運行着自己的服務器,同時

原创 6.1 Git 工具 - 修訂版本(Revision)選擇

修訂版本(Revision)選擇 Git 允許你通過幾種方法來指明特定的或者一定範圍內的提交。瞭解它們並不是必需的,但是瞭解一下總沒壞處。 單個修訂版本 顯然你可以使用給出的 SHA-1 值來指明一次提交,不過也有更加人性化的方

原创 5.3 分佈式 Git - 項目的管理

項目的管理 既然是相互協作,在貢獻代碼的同時,也免不了要維護管理自己的項目。像是怎麼處理別人用 format-patch 生成的補丁,或是集成遠端倉庫上某個分支上的變化等等。但無論是管理代碼倉庫,還是幫忙審覈收到的補丁,都需要同貢獻

原创 3.6 Git 分支 - 分支的衍合

分支的衍合 把一個分支中的修改整合到另一個分支的辦法有兩種:merge 和 rebase(譯註:rebase 的翻譯暫定爲“衍合”,大家知道就可以了。)。在本章我們會學習什麼是衍合,如何使用衍合,爲什麼衍合操作如此富有魅力,以及我們

原创 4.5 服務器上的 Git - 公共訪問

公共訪問 匿名的讀取權限該怎麼實現呢?也許除了內部私有的項目之外,你還需要託管一些開源項目。或者因爲要用一些自動化的服務器來進行編譯,或者有一些經常變化的服務器羣組,而又不想整天生成新的 SSH 密鑰 — 總之,你需要簡單的匿名讀取

原创 4.4 服務器上的 Git - 架設服務器

架設服務器 現在我們過一邊服務器端架設 SSH 訪問的流程。本例將使用 authorized_keys 方法來給用戶授權。我們還將假定使用類似 Ubuntu 這樣的標準 Linux 發行版。首先,創建一個名爲 'git' 的用戶,

原创 4.3 服務器上的 Git - 生成 SSH 公鑰

生成 SSH 公鑰 大多數 Git 服務器都會選擇使用 SSH 公鑰來進行授權。系統中的每個用戶都必須提供一個公鑰用於授權,沒有的話就要生成一個。生成公鑰的過程在所有操作系統上都差不多。 首先先確認一下是否已經有一個公鑰了。SSH

原创 3.5 Git 分支 - 遠程分支

遠程分支 遠程分支(remote branch)是對遠程倉庫中的分支的索引。它們是一些無法移動的本地分支;只有在 Git 進行網絡交互時纔會更新。遠程分支就像是書籤,提醒着你上次連接遠程倉庫時上面各分支的位置。 我們用 (遠程倉庫

原创 4.2 服務器上的 Git - 在服務器上部署 Git

在服務器上部署 Git 開始架設 Git 服務器前,需要先把現有倉庫導出爲裸倉庫 — 即一個不包含當前工作目錄的倉庫。做法直截了當,克隆時用 --bare 選項即可。裸倉庫的目錄名一般以 .git 結尾,像這樣: $ git clo

原创 3.4 Git 分支 - 利用分支進行開發的工作流程

利用分支進行開發的工作流程 現在我們已經學會了新建分支和合並分支,可以(或應該)用它來做點什麼呢?在本節,我們會介紹一些利用分支進行開發的工作流程。而正是由於分支管理的便捷,才衍生出了這類典型的工作模式,你可以根據項目的實際情況選擇

原创 6.2 Git 工具 - 儲藏(Stashing)

儲藏(Stashing) 經常有這樣的事情發生,當你正在進行項目中某一部分的工作,裏面的東西處於一個比較雜亂的狀態,而你想轉到其他分支上進行一些工作。問題是,你不想提交進行了一半的工作,否則以後你無法回到這個工作點。解決這個問題的辦

原创 6.4 Git 工具 - 重寫歷史

重寫歷史 很多時候,在 Git 上工作的時候,你也許會由於某種原因想要修訂你的提交歷史。Git 的一個卓越之處就是它允許你在最後可能的時刻再作決定。你可以在你即將提交暫存區時決定什麼文件歸入哪一次提交,你可以使用 stash 命令來