Git版本控制軟件結合GitHub從入門到精通常用命令學習手冊
注意:
學習前請先配置好Git客戶端
相關文章:Git客戶端圖文詳解如何安裝配置GitHub操作流程攻略
官方中文手冊:http://git-scm.com/book/zh
</blockquote>GIT 學習手冊簡介
本站為 Git 學習參考手冊。目的是為學習與記憶 Git 使用中最重要、最普遍的命令提供快速翻閱。 這些命令以你可能需要的操作類型劃分,并且將提供日常使用中需要的一些常用的命令以及參數。
本手冊將從入門到精通指導大家。 首先,我們要從如何以 Git 的思維方式管理源代碼開始。
如何以 GIT 的方式思考(這里可以不用看懂,接著看下面的內容,看完就全懂了。)
懂得 Git,第一件重要的事情就是要知道它與 Subversion、Perforce 或者任何你用過的版本控制工具都有著很大的差別。 通常,忘掉你預想的版本控制方式,改以 Git 的方式思考,能夠幫助你更好地學習 Git。
讓我們從頭開始。假設你正在設計一個新的源代碼管理系統。在你使用某個工具之前,是如何完成基本的源碼版本控制工作的呢? 十有八九,你只是在項目到達某些階段的時候,對項目做一份拷貝。
$ cp -R project project.bak這樣,你就可以在事情變得一團糟的時候很方便的返回到之前的狀態,或者通過對比當前的項目與之前的拷貝,看看自己在之后的工作中,都做了哪些修改。
如果你有點偏執,你可能會經常作上面說的事情,或許還會給項目拷貝加個日期:
$ cp -R project project.2010-06-01.bak如此,你就有了一堆項目在各個階段的快照,來作比較、查看。使用這種模式,你還可以有效地與人分享項目變更。 如果你會在項目到達一定階段的時候給它打個包,丟到自己的網站上,那其他的開發者們,就能很方便地下載它,做點改動,并給你補丁回饋。
$ wget http://example.com/project.2010-06-01.zip $ unzip project.2010-06-01.zip $ cp -R project.2010-06-01 project-my-copy $ cd project-my-copy $ (做了某些修改) $ diff project-my-copy project.2010-06-01 > change.patch $ (通過E-mail發送修改補丁)以此方式,原先的開發者就能將其他人的改動應用到他的項目中去,其他開發者也能了解你做的變更。其實這便是許多開源項目采用過多年的協作方式。
這辦法其實很好使,所以假設我們現在想要寫個工具,讓這個辦法更快、更簡單。 我們與其實現一個工具以記錄每個文件的版本,可能不如去實現個工具以使創建、儲存項目的快照更加方便,不用每次都去人肉作整個項目的拷貝。
這就是 Git 的精要所在。你通過
git commit
告訴 Git 你想保存一份項目快照, Git 就會為你的項目中的各個文件的當前狀態存一份記錄。之后,絕大部分的 Git 命令都圍繞這些記錄展開。 比如查看它們的區別(diff),提取它們的內容,等等。如果你將 Git 看作一個排序、對比以及合并項目更新的工具,那就容易理解狀況和正確做事了。 一、獲取與創建項目
你得先有一個 Git 倉庫,才能用它進行操作。倉庫是 Git 存放你要保存的快照的數據的地方。
擁有一個 Git 倉庫的途徑有兩種。在已有的目錄中,初始化一個新的,其一。 比如一個新的項目,或者一個已存在的項目,但該項目尚未有版本控制。如果你想要復制一份別人的項目, 或者與別人合作某個項目,也可以從一個公開的 Git 倉庫克隆,其二。本章將對兩者都做介紹。
Git使用前配置
如果設置了,在輸入命令示界面可以很方便的使用復制和粘貼(用左鍵選取要復制的,點右鍵直接就可以復制,粘貼時只需點一下右鍵。)設置方法:Git Bash快捷圖標(桌面圖標)右鍵屬性-選項,把快速編輯模式勾上就可以,如下圖:
設置Git本地項目開發庫默認路徑
如果設置了,就不用每次打開Git再cd打開目錄了。方法:右鍵Git Bash快捷圖標(桌面圖標)屬性,找到快捷方式-起始位置,把你的項目地址放在這里就可以了。如下圖:
配置本地用戶和郵箱
用戶名郵箱作用 : 我們需要設置一個用戶名 和 郵箱, 這是用來上傳本地倉庫到GitHub中, 在GitHub中顯示代碼上傳者;
使用命令 :git config --global user.name "HanShuliang" //設置用戶名 git config --global user.email "13241153187@163.com" //設置郵箱
到此Git客戶端已安裝及GitHub配置完成,現在可以從GitHub傳輸代碼了。
git init 將一個目錄初始化為 Git 倉庫
在目錄中執行
git init
,就可以創建一個 Git 倉庫了。比如,我們恰好有個目錄,里頭有些許文件,如下:$ cd konnichiwa $ ls README hello.rb在這個項目里頭,我們會用各種編程語言寫 “Hello World” 實例。 到目前為止,我們只有 Ruby 的,不過,這才剛上路嘛。為了開始用 Git 對這個項目作版本控制,我們執行一下
git init
。$ git init Initialized empty Git repository in /opt/konnichiwa/.git/在 /opt/konnichiwa/.git 目錄初始化空 Git 倉庫完畢。</pre>
現在你可以看到在你的項目目錄中有個
.git
的子目錄。 這就是你的 Git 倉庫了,所有有關你的此項目的快照數據都存放在這里。$ ls -a . .. .git README hello.rb恭喜,現在你就有了一個 Git 倉庫的架子,可以開始快照你的項目了。
簡而言之,用
</blockquote>git init
來在目錄中創建新的 Git 倉庫。 你可以在任何時候、任何目錄中這么做,完全是本地化的。git clone 復制一個 Git 倉庫,以上下其手
如果你需要與他人合作一個項目,或者想要復制一個項目,看看代碼,你就可以克隆那個項目。 執行
git clone [url]
,[url] 為你想要復制的項目,就可以了。$ git clone git://github.com/schacon/simplegit.git Initialized empty Git repository in /private/tmp/simplegit/.git/ remote: Counting objects: 100, done. remote: Compressing objects: 100% (86/86), done. remote: Total 100 (delta 35), reused 0 (delta 0) Receiving objects: 100% (100/100), 9.51 KiB, done. Resolving deltas: 100% (35/35), done.$ cd simplegit/ $ ls README Rakefile lib
上述操作將復制該項目的全部記錄,讓你本地擁有這些。并且該操作將拷貝該項目的主分支, 使你能夠查看代碼,或編輯、修改。進到該目錄中,你會看到
.git
子目錄。 所有的項目數據都存在那里。$ ls -a . .. .git README Rakefile lib $ cd .git $ ls HEAD description info packed-refsbranches hooks logs refs config index objects默認情況下,Git 會按照你提供的 URL 所指示的項目的名稱創建你的本地項目目錄。 通常就是該 URL 最后一個
/
之后的任何東西。如果你想要一個不一樣的名字, 你可以在該命令后加上它,就在那個 URL 后面。簡而言之,使用
</blockquote>git clone
拷貝一個 Git 倉庫到本地,讓自己能夠查看該項目,或者進行修改。二、基本快照
Git 的工作就是創建和保存你的項目的快照及與之后的快照進行對比。本章將對有關創建與提交你的項目的快照的命令作介紹。
這里有個重要的概念,Git 有一個叫做“索引”的東東,有點像是你的快照的緩存區。這就使你能夠從更改的文件中創建出一系列組織良好的快照,而不是一次提交所有的更改。
簡而言之,使用
</blockquote>git add
添加需要追蹤的新文件和待提交的更改, 然后使用git status
和git diff
查看有何改動, 最后用git commit
將你的快照記錄。這就是你要用的基本流程,絕大部分時候都是這樣的。