1. 程式人生 > >git的基本搭建和操作

git的基本搭建和操作

1.6 起步 - 初次執行 Git 前的配置

初次執行 Git 前的配置

既然已經在系統上安裝了 Git,你會想要做幾件事來定製你的 Git 環境。 每臺計算機上只需要配置一次,程序升級時會保留配置資訊。 你可以在任何時候再次通過執行命令來修改它們。

Git 自帶一個 git config 的工具來幫助設定控制 Git 外觀和行為的配置變數。 這些變數儲存在三個不同的位置:

  1. /etc/gitconfig 檔案: 包含系統上每一個使用者及他們倉庫的通用配置。 如果使用帶有 --system選項的 git config 時,它會從此檔案讀寫配置變數。

  2. ~/.gitconfig 或 ~/.config/git/config

     檔案:只針對當前使用者。 可以傳遞 --global 選項讓 Git 讀寫此檔案。

  3. 當前使用倉庫的 Git 目錄中的 config 檔案(就是 .git/config):針對該倉庫。

每一個級別覆蓋上一級別的配置,所以 .git/config 的配置變數會覆蓋 /etc/gitconfig 中的配置變數。

在 Windows 系統中,Git 會查詢 $HOME 目錄下(一般情況下是 C:\Users\$USER)的 .gitconfig 檔案。 Git 同樣也會尋找 /etc/gitconfig 檔案,但只限於 MSys 的根目錄下,即安裝 Git 時所選的目標位置。

使用者資訊

當安裝完 Git 應該做的第一件事就是設定你的使用者名稱稱與郵件地址。 這樣做很重要,因為每一個 Git 的提交都會使用這些資訊,並且它會寫入到你的每一次提交中,不可更改:

再次強調,如果使用了 --global 選項,那麼該命令只需要執行一次,因為之後無論你在該系統上做任何事情, Git 都會使用那些資訊。 當你想針對特定專案使用不同的使用者名稱稱與郵件地址時,可以在那個專案目錄下執行沒有 --global 選項的命令來配置。

很多 GUI 工具都會在第一次執行時幫助你配置這些資訊。

文字編輯器

既然使用者資訊已經設定完畢,你可以配置預設文字編輯器了,當 Git 需要你輸入資訊時會呼叫它。 如果未配置,Git 會使用作業系統預設的文字編輯器,通常是 Vim。 如果你想使用不同的文字編輯器,例如 Emacs,可以這樣做:

Warning

Vim 和 Emacs 是像 Linux 與 Mac 等基於 Unix 的系統上開發者經常使用的流行的文字編輯器。 如果你對這些編輯器都不是很瞭解或者你使用的是 Windows 系統,那麼可能需要搜尋如何在 Git 中配置你最常用的編輯器。 如果你不設定編輯器並且不知道 Vim 或 Emacs 是什麼,當它們執行起來後你可能會被弄糊塗、不知所措。

檢查配置資訊

如果想要檢查你的配置,可以使用 git config --list 命令來列出所有 Git 當時能找到的配置。

你可能會看到重複的變數名,因為 Git 會從不同的檔案中讀取同一個配置(例如:/etc/gitconfig 與 ~/.gitconfig)。 這種情況下,Git 會使用它找到的每一個變數的最後一個配置。

你可以通過輸入 git config <key>: 來檢查 Git 的某一項配置

2.1 Git 基礎 - 獲取 Git 倉庫

假如你只能閱讀一章來學習 Git,本章就是你的不二選擇。 本章內容涵蓋你在使用 Git 完成各種工作中將要使用的各種基本命令。 在學習完本章之後,你應該能夠配置並初始化一個倉庫(repository)、開始或停止跟蹤(track)檔案、暫存(stage)或提交(commit)更改。 本章也將向你演示如何配置 Git 來忽略指定的檔案和檔案模式、如何迅速而簡單地撤銷錯誤操作、如何瀏覽你的專案的歷史版本以及不同提交(commits)間的差異、如何向你的遠端倉庫推送(push)以及如何從你的遠端倉庫拉取(pull)檔案。

獲取 Git 倉庫

有兩種取得 Git 專案倉庫的方法。 第一種是在現有專案或目錄下匯入所有檔案到 Git 中; 第二種是從一個伺服器克隆一個現有的 Git 倉庫。

在現有目錄中初始化倉庫

如果你打算使用 Git 來對現有的專案進行管理,你只需要進入該專案目錄並輸入:

該命令將建立一個名為 .git 的子目錄,這個子目錄含有你初始化的 Git 倉庫中所有的必須檔案,這些檔案是 Git 倉庫的骨幹。 但是,在這個時候,我們僅僅是做了一個初始化的操作,你的專案裡的檔案還沒有被跟蹤。 (參見 Git 內部原理 來了解更多關於到底 .git 資料夾中包含了哪些檔案的資訊。)

如果你是在一個已經存在檔案的資料夾(而不是空資料夾)中初始化 Git 倉庫來進行版本控制的話,你應該開始跟蹤這些檔案並提交。 你可通過 git add 命令來實現對指定檔案的跟蹤,然後執行 git commit提交:

稍後我們再逐一解釋每一條指令的意思。 現在,你已經得到了一個實際維護(或者說是跟蹤)著若干個檔案的 Git 倉庫。

克隆現有的倉庫

如果你想獲得一份已經存在了的 Git 倉庫的拷貝,比如說,你想為某個開源專案貢獻自己的一份力,這時就要用到 git clone 命令。 如果你對其它的 VCS 系統(比如說Subversion)很熟悉,請留心一下你所使用的命令是"clone"而不是"checkout"。 這是 Git 區別於其它版本控制系統的一個重要特性,Git 克隆的是該 Git 倉庫伺服器上的幾乎所有資料,而不是僅僅複製完成你的工作所需要檔案。 當你執行 git clone 命令的時候,預設配置下遠端 Git 倉庫中的每一個檔案的每一個版本都將被拉取下來。 事實上,如果你的伺服器的磁碟壞掉了,你通常可以使用任何一個克隆下來的使用者端來重建伺服器上的倉庫(雖然可能會丟失某些伺服器端的掛鉤設定,但是所有版本的資料仍在,詳見 在伺服器上搭建 Git )。

克隆倉庫的命令格式是 git clone [url] 。 比如,要克隆 Git 的可連結庫 libgit2,可以用下面的命令:

這會在當前目錄下建立一個名為 “libgit2” 的目錄,並在這個目錄下初始化一個 .git 資料夾,從遠端倉庫拉取下所有資料放入 .git 資料夾,然後從中讀取最新版本的檔案的拷貝。 如果你進入到這個新建的 libgit2 資料夾,你會發現所有的專案檔案已經在裡面了,準備就緒等待後續的開發和使用。 如果你想在克隆遠端倉庫的時候,自定義本地倉庫的名字,你可以使用如下命令:

這將執行與上一個命令相同的操作,不過在本地建立的倉庫名字變為 mylibgit

Git 支援多種資料傳輸協議。 上面的例子使用的是 https:// 協議,不過你也可以使用 git:// 協議或者使用 SSH 傳輸協議,比如 [email protected]:path/to/repo.git 。 在伺服器上搭建 Git 將會介紹所有這些協議在伺服器端如何配置使用,以及各種方式之間的利弊。