歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 1分鐘學會用Git管理代碼

1分鐘學會用Git管理代碼

日期:2017/2/28 14:46:06   编辑:Linux教程

本文是一個入門級的使用教程,簡單介紹最基礎的命令,專為想用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

好了,入門級介紹就結束了。

更多閱讀:

Git使用教程與基本原理 http://www.linuxidc.com/Linux/2013-05/85065.htm

《Pro Git》中文版 PDF http://www.linuxidc.com/Linux/2013-05/85066.htm

Copyright © Linux教程網 All Rights Reserved