Git代碼管理

轉自RunningOn

    本文是一個入門級的使用教程,簡單介紹最基礎的命令,專爲想用git而不知從何下手的苦手準備。git是新流行起來的代碼管理工具,最著名的應用是 linux內核代碼管理。Git比SVN好的地方在於兩點:輕量級、分佈式。其中分佈式的意思是Git不需要一箇中心服務器,或者說任何一臺使用git的 電腦都可以當服務器,建立代碼庫服務器異常簡單。

    本文不重點介紹git的安裝,簡單說一下:在Ubuntu/Debian下直接apt-get:
     sudo apt-get install git-core
    就OK了。目前爲止git沒有爲Windows專門寫安裝包,如果要在Windows下使用git,需要cygwin,也不麻煩,但本文就不多做說明了。

    以下分兩種應用場景來說明git的使用。1. 個人使用,不用建專門的代碼服務器。2. 多人維護代碼,需要代碼建服務器。

    1. 個人使用,不用建專門的代碼服務器。
    很簡單。假設你的代碼放在/home/runningon/project目錄下(非空),那麼運行:
    git init
    git add .
    git commit -m "init version"

    然後git代碼庫就建立好了,目錄下會多出個.git目錄來。git init就是初始化,git add是標記上要添加的文件,"."表示當前目錄,此命令會遞歸標記所有子目錄及文件。git commit就是把標記上的文件和修改的文件commit到git庫裏,-m參數是添加對此次commit的註釋,git要求每次commit都必須有注 釋,如果沒有-m參數,將會自動打開一個編輯器(通常是vi或nano)要求輸入註釋。
    以後,如果修改了文件,則運行
     git commit -m "<comments>"
    就可以將修改反映到git庫,將<comments>替換爲你想要的註釋。
    如果添加了代碼文件new_file,則在commit之前運行
     git add new_file
    如果想把代碼克隆一份出來,進入你想克隆到的目錄運行:
     git clone /home/runningon/project new_project
    注意git clone後有兩個參數,第一個參數是源代碼目錄,也就是含有.git文件夾的目錄。第二個參數是要克隆到的目錄,如果省略,則會在當前目錄下建立一個與源代碼目錄同名的目錄,在本例中就是./project
    克隆出的目錄包含克隆前目錄的所有代碼修改信息,是完全獨立的,即之後在new_project下的所有修改與commit都不會影響原project。

    2. 多人維護代碼,需要代碼建服務器。
    假設代碼服務器的IP是10.0.0.2。git默認用ssh作爲網絡通訊協議,所以在服務器10.0.0.2上安裝之:
     sudo apt-get install ssh
    然後添加一個用戶,比如code,home目錄是/home/code。以code用戶登錄10.0.0.2,建立一個/home/code/project目錄來存放代碼。在/home/code/project目錄下運行:
     git --bare init
    一條命令就把服務器就建好了,小菜吧。--bare命令是告訴git當前目錄不含代碼,以後commit時只用保存修改就可以了。
    在本機下載代碼與情況1一樣:
     git clone /home/code/project new_project
    如果要在另外的電腦下載代碼,運行:
     git clone [email protected]:project 
new_project
    此命令會以ssh方式連接10.0.0.2,如果第一次連接,會詢問是否信任該服務器,輸入yes後。然後輸入code用戶的密碼就可以了。//注,原文作者說
[email protected]:project這裏需要home目錄,其實不需要,這裏親測[email protected]:/media/Disk1_150G/tommy-test,即使用“用戶名@絕對路徑”的方式也是可以的。
    注意git clone後第一個參數的格式,爲<用戶名>@<服務器IP>:<相對路徑>,其中<相對路徑>是指相 對於<用戶名>所在home目錄的相對路徑,比如此例中,code的home目錄是/home/code,那麼此例的路徑實際爲/home /code/project。<相對路徑>不能留空或省略,如果代碼確實是在home目錄下,則<相對路徑>是".",不含雙引 號。要提醒一下的是,如果代碼庫是空的,會給出警告,不必理會。

    如果在new_project裏修改了代碼,且添加了新代碼new_file,想把這修改commit到服務器上,先運行:
    git add new_file  //這裏也可以使用git add . 來完成,應爲服務器上只會保存修改,所以全部上傳也可以。
    git commit -m "<comments>"
    將<comments>替換爲你的註釋。這樣代碼就commit到當前機器的new_project了。如果想commit到服務器上,則在new_project目錄下運行:
    git push [email protected]:project 
master
    然後輸入code用戶的密碼。master不是目錄名,具體含義本文不作解釋。
    如果本機就是服務器,那麼IP地址可以寫爲localhost或127.0.0.1。
    如果覺得每次輸入
[email protected]:project很麻煩,可以爲這個URL取個別名my_server:
   git remote add my_server 
[email protected]:project
    這樣前一條git push命令可以寫作:
     git push my_server master

    好了,入門級介紹就結束了。進一步的學習可以看:
    官方教程(英文): 
http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html
    官方教程的中譯版本: http://www.bitsun.com/documents/gittutorcn.htm

發佈了35 篇原創文章 · 獲贊 4 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章