1. 程式人生 > >linux系統下git使用

linux系統下git使用

一次 som client username 設計 cbe 默認 分布 做什麽

轉載:http://www.cnblogs.com/bear2flymoon/p/4335364.html?ADUIN=563508762&ADSESSION=1430887070&ADTAG=CLIENT.QQ.5401_.0&ADPUBNO=26464

身邊的技術大牛一直都建議我使用git進行代碼管理,而我每次都把這件事情忘之腦後。最近,好像感覺到了git的重要性。下面是最簡單的使用git的入門方法,僅適用於像熊二飛月這樣的菜鳥級git選手。

Git是一個分布式版本控制軟件,原是Linux內核開發者Linus Torvalds為更好地管理Linux內核開發而設計的。

主要功能

Git是用於Linux內核開發的版本控制工具。與CVS、Subversion一類的集中式版本控制工具不同,它采用了分布式版本庫的方法,不需要服務器端軟件,就可以運作版本控制,使得源代碼的發布和交流及其方便。Git的速度很快,這對於諸如Linux內核這樣的大項目來說自然很重要。Git最為出色的是它的合並追蹤(merge tracing)能力。

實際上內核開發團隊決定開始開發和使用Git來作為內核開發的版本控制系統的時候,世界上開源社區的反對聲音不少,最大的理由是Git太艱澀難懂,從Git的內部工作機制來說,的確是這樣。但是隨著開發的深入,Git的正常使用都由一些友善的命令稿來執行,使Git變得非常好用。

工作步驟

1. 安裝git

熊二飛月使用的是ubuntu系統,使用apt-get install git即可安裝。

2. 設置Git

在能夠使用Git進行工作之前,我們需要進行一次性的配置。為了能讓Git能夠跟蹤誰做了修改,我們需要設置你的用戶名。

git config --global user.name "bear2flymoon"

git config --global user.email [email protected]

這裏我的用戶名就設置為:bear2flymoon

郵箱為:[email protected](谷歌被墻,無法登陸)

3. 創建一個本地代碼庫

假設我們的代碼寫在機器的/home/bear2flymoon文件夾下的’test‘文件夾內。在命令行輸入下列命令:

cd /home/bear2flymoon/test/

下面,我們需要告訴Git這個文件夾是我們需要跟蹤的項目。所以我們在該目錄下輸入以下命令來初始化一個新的本地Git代碼庫

git init

Git會在test文件夾下創建一個名為.git的隱藏文件夾,這就是你的本地代碼庫。

4. 暫存(stage)文件

我們需要暫存(stage)test文件夾下所有項目文件,輸入以下命令:

git add .

最後的“.”符號的意思是“所有文件、文件夾和子文件夾”。假如我們只需要把特定文件添加到源代碼控制中去,我們可以指定它們:

git add my_file,my_other_file

5. 提交文件

現在,我們想要提交已經暫存(staged)的文件。我們提交我們的文件時,總是附帶著有意義的註釋,描述它們現在的狀態。我一直用“initial commit"來描述我的第一個提交的註釋。

git commit -m "initial commit"

同樣,你隨時可以回滾到這個提交狀態。如果你需要檢查現在已暫存和未暫存文件的狀態、提交等,你可以輸入以下命令詢問git的狀態:

git status

6. 創建分支

創建分支是你創建代碼獨立版本的動作,這個新分支獨立於你的主幹。默認的,每次你提交到Git的代碼都會被存儲到”master(主幹)”分支。

現在,比如我們想向項目中添加一個功能,但我們又想要能夠回滾到現在的版本,為了防止出現差錯,或者我們會最終放棄這個功能。這時候,我們就可以創建分支並切換到新建的分支,發送命令:

git checkout -b new_feature

或者先創建一個分支,然後切換

git branch new_feature

git checkout new_feature

要看項目下所有的分支,發送命令:

git branch

現在你可以在你的項目上無所顧忌地做任何你想做的:任何時候,你都可以回到你創建分支前的狀態。註意,你同時可以有多個分支,甚至可以從一個分支上再創建一個分支。

7. 合並分支

當我們對新功能滿意的時候,我們想要把它加到主幹分支上。當我們在的新功能分支上時,我們首先需要加載並且提交文件:

git add .

git commit -m "adds my new feature"

然後移到主幹分支:

git checkout master

像這樣合並:

git merge new_feature

此時,我們的主幹分支和新功能分支會變成一樣。

8. 丟棄並刪除分支

當我們想要丟棄並刪除一個分支時,首先加載我們的文件並且在分支裏提交:

git add .

git commit -m "feature to be discarded"

然後,移到主幹分支

git checkout master

然後發送刪除命令

git branch -d new_featrue

假如修改已經合並了,它只會刪除分支。假如分支沒有合並,我們會得到一個錯誤信息。刪除一個未合並的分支(通常我們不想保留的修改),我們需要發送一樣的命令附帶一個大寫D。意思是“強制刪除分支,無論如何我不想要它了。”:

git branch -D new_feature

9. 回滾到之前提交的狀態

在某些情況下,我們可能想要回到之前的代碼版本。首先,我們需要找到想回到到哪個版本。需要查看所有完成的提交,發送命令:

git log

輸出提交的歷史記錄

commit ca82a6dff817ec66f44342007202690a93763949Author: your_username [email protected]:   Mon Nov 4 12:52:11 2013 -0700    changes the frontpage layout
commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7Author: your_username [email protected]:   Mon Nov 4 11:40:33 2013 -0700    adds my new feature
commit a11bef06a3f659402fe7563abf99ad00de2209e6Author: your_username [email protected]:   Mon Nov 4 10:37:28 2013 -0700    initial commit

如果我們想回到“adds my new feature"這個提交,簡單的使用提交的ID做簽出(checkout)(通常只用ID的開頭9個字母)

git checkout 085bb3bcb

我們也可以簽出一個新的分支

git checkout -b my_previous_version 085bb3bcb

只是別太瘋狂了!分支越復雜,我們就越難確定我們在做什麽。

10. 別名

Git允許我們為常用的命令創建快捷方式(別名)。例如,如果我們不想每次都輸入git commit -m “some comment”,而是輸入git c “some comment”,我們可以向git全局配置裏添加一個別名來實現,像這樣:

git config --global alias.c ‘commit -m‘
這是我使用的別名列表:
git config --global alias.c ‘commit -m‘
git config --global alias.co ‘checkout‘
git config --global alias.cob ‘checkout -b‘
git config --global alias.br ‘branch‘
git config --global alias.m ‘merge‘
git config --global alias.a ‘add .‘
git config --global alias.s ‘status‘
git config --global alias.dbr ‘branch -d‘

linux系統下git使用