Git是個了不起但卻復雜的源代碼管理系統。它能支持復雜的任務,卻因此經常被認為太過復雜而不適用於簡單的日常工作。讓我們誠實一記吧:Git是復雜的,我們不要裝作它不是。但我仍然會試圖教會你用(我的)基本的Git和遠程代碼庫干活的工作步驟,在15分鐘內。
工作步驟
我會展示以下的步驟,通常能幫我獨自在一台或多台機器上做項目。
- 創建一個遠程的空代碼庫(在BitBucket上)
- 在本地代碼庫添加一個項目
- 在分支上開發新功能
- a) 保留新功能 或者 b) 丟棄它們
- 也許,回到某個早先的時間點
- 將本地代碼庫推送到遠程代碼庫
- 在另一台機器上取得遠程代碼庫
安裝Git
在大多數*nix系統(Linux、OS X)上,Git已經被安裝了。你通過發送下面的命令,可以通過Git自身,把它更新到最新的的開發版本(不推薦)。
git clone https://github.com/git/git
在Windows上,你可以在這裡下載Git的安裝程序。如果你真的需要其他系統的安裝程序,Mac OS X安裝文件在這裡,Linux的操作指導在這裡。
創建一個遠程代碼庫
很多人喜歡用Github。我個人更喜歡BitBucket,因為它提供了不限制的私有代碼庫,那是我最需要的。你可以將下列指令轉換到Github上,這些過程是相同的。
那麼,去到www.bitbucket.org並注冊一個賬號。一旦完成,登錄後點擊最上方的“create(創建)”按鈕。照著填寫表格,勾選私有代碼庫。你可不想讓其他人來偷窺你的Facebook的殺手級應用的源代碼,對吧。
你現在可以離開BitBucket了,我們在已經有了所有那裡需要的東西了。
設置Git
在我們能用Git工作之前,我們需要做個一次性的配置。為了Git能跟蹤到誰做了修改,我們需要設置你的用戶名。我強烈建議你使用與注冊BitBucket賬號相同的用戶名和電子郵箱地址。發送這些命令,相應地替換掉其中的“your_username”和“
[email protected]”(注意引號):
git config --global user.name"your_username"
git config --global user.email
[email protected]
我們也會設定推送(push)的默認值為‘simple’。要了解這是什麼意思,快速閱讀我之前發布的關於推送的默認值(非必須)。發送這條命令:
git config --global push.default simple
我們都設好了。你無需在你的機器上再重復這些配置,但如果你在另一台機器上工作的話,不要忘記這些配置。如果你忘記做初始的配置,Git不會允許你提交任何東西,這會讓你困擾。
創建一個本地代碼庫
作為例子,我們會假裝我們有一個網站(無所謂技術)存在於我們機器上的‘workspace’文件夾下的’my_site’文件夾內。在命令行中,去到你的站點的根文件夾。在OS X和Linux上:
cd~/workspace/my_site/
在Windows上:
cdc:\workspace\my_site
我們首先需要告訴Git這個文件夾是我們需要跟蹤的項目。所以我們發送這個命令來初始化一個新的本地Git代碼庫
git init
Git會在my_site文件夾內創建一個名為.git的隱藏文件夾,那就是你的本地代碼庫。
加載(Stage)文件
我們現在需要命令Git我們需要加載(stage)所有項目文件。發送:
git add .
最後的“.”符號的意思是“所有文件、文件夾和子文件夾”。假如我們只想要把特定文件添加到源代碼控制中去,我們可以指定它們:
git add my_file, my_other_file
提交文件
現在,我們想要提交已加載(staged)的文件。閱讀“添加一個時間點,在這裡你的文件處在一個可還原的狀態”。我們提交我們的文件時,總是附帶著有意義的注釋,描述了它們現在的狀態。我一直用“initial commit”來作為第一個提交的注釋。
git commit -m"initial commit"
就這樣。現在你隨時都可以回滾到這個提交狀態。如果你有需要檢查你現在的已加載(staged)和未加載(unstaged)文件的狀態、提交等,你可以詢問git的狀態:
git status
創建分支
建立分支是你創建代碼的獨立版本的動作,獨立於你的主干分支。默認地,每次你提交到Git的文件都會被儲存到“master(主干)”分支。
現在我們來說說,你想要向項目裡添加一個功能,但你想要能夠回滾到現在版本,以防出現差錯,或者你決定要放棄這個功能。這就是你創建分支的時候了。創建並同時切換到你新建的分支,發送:
git checkout -b new_feature
或者,你可以先創建一個分支然後手動切換,就像這樣:
git branch new_featuregit checkout new_feature
要看你現在項目下所有的分支,發送這個:
git branch
現在你可以在你的項目上無所顧忌地做任何你想做的:任何時候,你都可以回到你創建分支前的狀態。注意,你同時可以有多個分支,甚至可以從一個分支上再創建一個分支。
Git 的詳細介紹:請點這裡
Git 的下載地址:請點這裡
推薦閱讀:
Fedora通過Http Proxy下載Git http://www.linuxidc.com/Linux/2009-12/23170.htm
在Ubuntu Server上安裝Git http://www.linuxidc.com/Linux/2009-06/20421.htm
服務器端Git倉庫的創建(Ubuntu) http://www.linuxidc.com/Linux/2011-02/32542.htm
Linux下Git簡單使用教程(以Android為例) http://www.linuxidc.com/Linux/2010-11/29883.htm
Git權威指南 PDF高清中文版 http://www.linuxidc.com/Linux/2013-10/91053.htm