GIT之初來咋到

來源:互聯網
上載者:User

書接上回,上一節書我們回顧了GIT的前世今生,將GIT 與Clearcase做了一個比較。這篇我們一塊來到GIT的地盤。初來乍到,我們從一些常用的,基本的命令開始。如果您是GIT的高手,請無視這篇文章,無須多費時間在這上面.

這篇blog會講到的部分有以下4個:

1.      混沌初開(Git init & clone)

2.      與時俱進(Git Pull & Fetch)

3.      添磚加瓦 (Git add & commit & push)

4.      明察秋毫 (Git log & show)

1. 混沌初開 (Git init & clone & remote)

如果我們想將現在的項目放到GIT裡面去,那麼我們可以將命令列轉到目前的目錄下,執行 “git init” 這個命令。這將會建立一個.git的檔案夾。這個檔案裡麵包含了GIT所需要的所有資訊,包括 項目的設定,index,index lock,branch的資訊,change的資訊,ref的資訊等等。就是這麼簡單的一個命令,就能夠把GIT的倉庫建立起來,酷吧?

而如果項目已經被其他偉大的同事加上去了,那我們要做的就是從給定的地址上面,把程式碼程式庫複製一份到本地,這樣才能對代碼進行修改。可以用下面的命令完成:

"git clone Your_Account@TeamPC/Your_Project.git"  

然後你就等啊等,直到代碼都下載到本地就OK。注意哦,1) 即使是複製下來的代碼,裡面也有一個.git的檔案夾,裡面同樣了包含了整個程式碼程式庫的曆史資訊以及index等等,跟init出來的檔案結構一樣,只不過裡面已經有其他內容了。 2)程式碼程式庫有兩種,上面的命令複製下來的程式碼程式庫是 personal (個人的),裡麵包含了代碼以及相關的repository資訊,而如果clone的命令帶了這個參數 “--bare”,那麼複製下來的就只有repository的資訊,而不能看到任何源檔案。具體區別跟用法 會在後面的文章講到

2.與時俱進(Git Pull)

別人都已經開發到2.0了,我們總不能老是拿著1.0的代碼在看啊!這個時間我們就需要與時俱進,去拿到別人已經做好的更新. GIT就跟孔乙己估計有親戚關係,茴香豆的“茴”字有4種寫法,而GIT拿代碼也有2種拿法:

“git fetch”

“git pull”

Fetch只是將別人的改動拿到本地的repository裡面,但是不會跟working folder做merge。也就是說只拿不用,在我們的源檔案裡面還是看不懂別人的改動,只在history tree裡面看到; 而Pull是將別人的改動拿到本地的repository裡面之後,還將這些個改動添加到我們的原始碼裡面去。 可以這樣說 Pull = Fetch + Checkout

3.添磚加瓦(Git add & commit & push)

人不能太自私,老是拿別人的東西,自己又藏著掖著。所以我們的代碼改動也要放到公用程式碼程式庫裡面去。怎麼弄呢?如果是Clearcase,我們需要 checkout + checkin + delivery. 而GIT裡面也是需要一個類似的過程, add + commit + push. GIT裡面有3塊不同的地方,一個是working tree, 也就是我們平時看到原始碼的地方;第二個是index,從物理上講,這隻是一個檔案。再說一個,GIT的檔案無外乎兩種狀態 (被跟蹤跟未被跟蹤),index就是記錄這些個被跟蹤的檔案資訊;第三個地方時local
repository,可以看做.git裡面的東東。當添加一個檔案或者修改一個檔案之後,我們需要用 git add 的命令告訴GIT這個檔案需要被跟蹤,而如果僅僅是被跟蹤的話,別人是拿不到這個檔案的改動的,因為GIT只認commit的資訊。所以這個需要就需要commit啦~ commit會記住我們剛剛修改了哪些檔案,由誰修改的等等資訊。以上的add / commit的動作都只是在本地,別人根本不知道你在幹蝦米。這個時候,我們需要用git push的命令告訴 team PC的GIT 我們改了什麼!

都說程式員都是特別懶的,如果每修改一個檔案就需要add一下還真有夠煩的,也容易漏,GIT也早就想好了。怎麼弄呢? "git add" +"git commit" = "git commit -a" 這個命令將會找出前面所修改的所有檔案,然後一次性加到index裡面去,再commit! 爽了吧 這下!

4. 明察秋毫 (Git log & show)

若要人不知,除非己莫為。只要我們修改了檔案,並且上傳到伺服器上,那麼別人就可以看到是誰改的,改了什麼。怎麼看呢? "git show" + "git log". GIT的記錄是由一些列相關聯的”commit”所組成的。每一次“commit”都會有一個唯一的名稱。如下黑體字所示:

[lazypig@lazypig project]$ git log
commit 1a6668402aadd3cd41b3fe8c84a8658da
Author: lazypig <lazypig@gmail.com>
Date:   Wed Sep 24 13:16:46 2011 +0800

after pull from rocrocket

Hello!!!!!所以git log跟show的命令均可以通過指定 commit的hashcode來查看詳細的log資訊.以上簡單地介紹了GIT的4種基本的操作命令組,由於時間的關係,這篇文章就先寫到這裡,下篇將會介紹稍微複雜一些的命令組!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.