五分鐘開始你的Git之旅

不少人認爲Git太混亂或太複雜而沒有把它當作版本控制工具。然而Git正在成長,另外不少頗有意思的事情也隨之發展起來。這篇文章瞄準了想開始用Git的人羣,一般是從Subversion(另外一個版本控制工具)轉過來的。這篇文章將包含你須要學會的大部分最經常使用的基本技能。

讓咱們開始吧

       使用Git你得安裝一個版本庫。你能夠用一個已經存在的目錄來作一個Git庫,或者建立一個空目錄。
 
       把當前的目錄設置爲一個Git庫咱們只須要初始化:

       git init

       要作一個新目錄當作Git庫的話,咱們須要指定一個目錄:

       git init newrepo

       從如今起,除非另有說明,咱們假設你一直都在這個Git庫的根目錄。

添加新文件

       因此咱們只有一個什麼都沒有的庫。你能夠用add命令來添加文件:

       git add filename

       想添加你目錄裏的全部文件你能夠用這個:

       git add

提交版本

       如今咱們已經添加了一些文件,咱們想讓它們真正的存在Git庫裏。能夠經過下面這條命令這把它們提交給Git庫:

       git commit -m 「Adding files」

       若是遺漏了-m,你須要本身在編輯器裏寫上信息。

編輯文件

       當你對某些文件作出改變時,你能夠試試git status來看看提交後會發生什麼事。你會注意到一個修改文件的列表,以及一條信息:

       no changes added to commit (use 「git add」 and/or 「git commit -a」)

       因此除非你明確地用git add添加文件並提交到git庫,否則git commit一點用也沒有。若是你正在找能自動提交本地修改文件的提交命令能夠加上-a標識:

       git commit -a -m 「Changed some files」

       或者若是你只想把某些文件,而不是運行git add,咱們能夠傳遞一些指定的文件:

       git commit -m 「change some files」 file1 file2

       必定要注意-a不會提交新文件,而只會提交修改後的文件。

發佈你的Git庫

       把你的庫放到服務器上咱們須要從創建一個空庫開始,而後把你的Git庫上傳到服務器上。

       cd /tmp

       git clone --bare ~/your/repo/path project.git

       scp -r project.git ssh://example.com/~/www/

       如今若是咱們我不少提交文件並想把它們推送到那個位置:

       git push ssh://example.com/~/www/project.git

       若是你不喜歡每次都敲URI咱們能夠從一個克隆的項目記着它的地址來採起點便利方法:

       cd..

       git clone ssh://example.com/~/www/project.git project

       如今git push就會推送至他克隆來的URI。你能夠經過在你的庫裏手工編輯.git/config來實現這一點。

獲取上游的改變

       若是你已經照上面把推送安裝好了:

       git pull

       上面這個命令將會把庫裏的改變獲取回來而且把它們結合起來。從非默認路徑獲取只須要指定URI:

       git pull http://git.example.com/project.git

五分鐘以外的獎勵

        提交

       你已經注意到了,Git以「提交」的方式在思考。這些提交被一個hash值惟一地標記。你能夠用git log命令瀏覽提交歷史和相應的hash值。每一個提交都包含了改動信息,新文件和那些被移除的文件。Add命令會把一個文件放到提交裏面。git reset HEAD會把計劃提交裏的一切都移除掉,但不改變文件裏的內容。

        移除

       若是你想從你的Git庫裏吧一個文件移除,咱們用rm命令來把它從之後的提交裏移除:

       git rm file

        分支與合併

       分支是在本地迅速完成的。咱們用branch命令來創建一個新分支:

       git branch test

       branch命令並不會把咱們移動到咱們創建的那個分支裏去,它只會建立。咱們用checkout命令來變換到不一樣的分支裏去:

       git checkout test

       第一個分支,或主要分支,被稱爲「master」。

       git checkout master

       然而你在分支裏提交的改變並不會在主分支裏體現出來。當你完成後,或者想推送改變到主分支的時候,切換到主分支並使用merge命令:

       git checkout master

       git merge test

       另外若是你再也不須要這個分支的時候你能夠用branch命令傳送-d標識來刪掉它:

       git branch -d test

        穿越時空

       你能夠再次使用checkout命令很快地恢復Git庫到之前的狀態:

       git checkout HASH

       沒有提交的改變將會和你一塊兒穿越。用git checkout master命令來恢復到預置狀態,普通分支也的作法也同樣。若是你在過去提交的分支是自動建立的,你對文件作出的改變會與前面的內容結合起來。

        之後被掩蓋的真相

       當在分支之間切換的時候,你本地的改變也會隨着變化。有時你想切換分支但又不想提交或讓這些改變隨着變化。Stash命令容許你把改變放到一個安全的存儲裏。

       git stash

       你能夠經過傳遞一個apply或pop參數來從新得到它:

       git stash apply

       apply和pop命令之間的不一樣其實很簡單。apply把隱藏狀態找出來並加以運用,但在隱藏處還保持它原來的狀態(至關於複製出來文件並加以運用,原來的安全存儲區域不變)。pop命令會找到隱藏狀態,加以運用,而且會把隱藏狀態刪除掉。git stash clear命令會把隱藏區域的內容清空。
相關文章
相關標籤/搜索