Git簡明教程二 開始進行版本管理

2022-02-06 20:27:59 字數 3423 閱讀 4621

安裝git後,請先在你的電腦上新建或選擇乙個目錄作為測試用,本教程大部分操作都將在該目錄下完成。

另外,我們的操作都是在命令列下完成的,如果你用的是windows,可以通過右鍵選單開啟git bash這個git命令列環境:在資源管理器中進入該目錄,點選右鍵,在右鍵選單中點選「git bash」即可開啟git bash並自動定位到當前目錄下:

進入你的測試目錄,在windows中用前面的方法開啟git bash後就已經在測試目錄下了。接下來,由於這是安裝後第一次執行git,我們需要做一點簡單配置:

$ git config --global user.name "your name"

$ git config --global user.email "your email"

為了在多人合作時能區分每個人的身份,所以我們需要告訴git我們是誰。git有很多設定選項,只有名字和email是一開始就必須設定的,其他大部分都是用來提高工作效率的,我們暫時不去關心。

這裡簡單解釋一下這個命令,git的所有命令都遵循相同的格式:

下面就來在我們的測試目錄中建立乙個版本庫玩玩。建立版本庫非常簡單:

$ git init

不需要任何引數,只要乙個init命令就可以在當前目錄下建立乙個版本庫。成功後,就會在當前目錄下生成乙個隱藏的.git目錄,這個就是git的版本庫,而當前目錄就成為了工作區。

現在版本庫還是全新的,裡面只有少量的初始配置資料,還沒有任何的版本提交記錄等資訊。工作區暫時也是新的,裡面還沒有需要被git管理的檔案。

現在我們在當前目錄(工作區)中隨意建立乙個檔案例如hello.c。好了,這個檔案目前已經處於git的「監管」中了。你在該檔案中所做的任何改動都會被git看在眼裡。

$ git status

顯示結果如下:

status命令用來顯示工作區當前的狀態,例如有哪些檔案有改動,哪些檔案是新增的等等。從結果可以看出來,工作區中新增了乙個hello.c檔案,並且該檔案正處於untracked狀態。

untracked的意思是這個檔案正被git「監視」著,但還沒有記錄在案。這時候如果你刪除了新建立的檔案,或者在編輯器中把最新的修改撤銷掉了,git的態度是「事不關己高高掛起」的。

要想讓檔案真正被git管理起來,我們需要把這個檔案提交到版本庫中。也就是讓git把關於這個檔案的一些資訊記錄下來,比如什麼時候修改的,由誰修改的、修改了哪些內容,等等。向版本庫中提交乙個檔案需要2個步驟,以我們剛才建立的hello.c檔案為例:

$ git add hello.c

$ git commit -m "create hello.c"

第一步add命令用來將檔案標記為可以提交的,從而消除了檔案的untracked狀態。你可以在執行commit命令之前用add新增任意數量的檔案,這樣下次commit時就會將這些檔案一起提交到版本庫。實際上,add命令會把檔案新增到乙個叫做暫存區(stage)的地方,暫存區是版本庫中的乙個臨時場所,如下圖所示(來自廖雪峰老師的**):

檔案從新增到暫存區開始就會受到git的保護,假如工作區中該檔案丟失了,我們可以從暫存區中恢復它。

暫存區的另乙個主要功能或者說優點是它可以用來標記出哪些檔案是需要提交的而哪些是暫時不想提交的。因為有時候我們的工作區中有很多檔案都被修改過,但某一次提交可能只想提交其中的一部分,其他的,例如還沒有最終完成的功能,或者乙個只修復了一半的bug等,這些檔案我們暫時不想提交。這是很常見的情況,利用暫存區可以很方便地滿足這種需求。

暫存區只是臨時的,我們的最終目標是將修改後的檔案提交到版本庫中。commit命令用來將暫存區中的檔案提交到版本庫,並且在版本庫中形成乙個新的版本記錄。commit需要乙個-m引數,用來對本次提交做出說明。例如提交了哪些檔案、修改了什麼地方、或者修復了哪個bug等。預設情況下說明資訊是必需的,為每次提交寫一點描述也是乙個很好的習慣,我們應當養成並堅持這一習慣。

很多時候,我們在決定將乙個檔案提交到版本庫之前希望能夠確認一下修改的內容。這時候就可以使用diff命令:

$ git diff hello.c

git提供的diff命令和linux下常用的diff差不多,輸出格式也基本一樣。如下圖所示:

diff命令會將工作區中該檔案的內容與暫存區中內容或版本庫中最後一次提交的內容做對比,並顯示兩者的差異。如果這個檔案之前被新增到了暫存區但還沒有提交,那麼比較的將是工作區和暫存區之間的差異;否則就會比較工作區和版本庫中最後一次提交的內容之間的差異;如果暫存區和版本庫中都沒有該檔案的記錄(例如檔案是新建的)那麼將不會執行比較(什麼都不顯示)。

從圖中可以看出來,相比上次提交,hello.c檔案新增加了一行:# i will code it later^m(這個^m了解windows和linux差異的應該都清楚吧)。

init用來建立乙個全新的版本庫。但有時候我們並不是想建立乙個新的版本庫,而是希望將別的地方已有的版本庫複製乙份過來。例如公司的**伺服器上的公共版本庫,你希望將其複製乙份到自己的電腦上。或者你希望把你在github上的某個版本庫複製乙份到本地,等等。

$ git clone url

關於這個後面介紹github時再細說。

本節介紹了以下幾個常用命令:

git中最常見的一組操作是修改檔案->比較差異->放到暫存區->提交到版本庫,掌握了這幾個操作對應的命令以後就算入門了,可以初步利用git管理你的**了。

下一節會更介紹另外幾個實用的命令,從而更好地完成修改->提交操作。

如果覺得本文對你有幫助請順手點個贊吧

Git簡明教程

git是拿來控制版本的,版本控制即vcs version control system 版本控制最初是linux之父拿來管理複雜的linux核心版本的 本地版本控制 容易與備份混淆 分布式版本控制 每個使用者都有乙個專案的完整拷貝,可以通過fetch pull與伺服器同步,便於協同工作 modifi...

Git簡明教程

mkdir path to your project cd path to your project git init git remote add origin 建立你的第乙個檔案,提交,然後推送到倉庫。git config global user.email xx xx.com git conf...

git簡明教程

ssh keygen t rsa c xx.com 冒號中的內容是郵箱,此操作用來生成rsa金鑰,用來標定你使用的計算機。根據提示資訊找到金鑰id rsa.pub,copy一下,將該金鑰新增到使用者的setting選單下的ssh key那一欄 ssh t git github.com可以檢查金鑰新增...