Git用法初探

NO IMAGE

前提

之前一直在用svn和cvs,感覺跟不上時代的潮流了,加上git優點多多,所以就抽出時間進行了git基本的學習,一是怕自己忘記了,另外一個希望可以幫助到新手,避免走彎路,如有不對的地方還望指正。

簡介

Git是一個開源的分佈式版本控制系統,可以有效、高速的處理從很小到非常大的項目版本管理。 Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。
Torvalds 開始著手開發 Git 是為了作為一種過渡方案來替代 BitKeeper,後者之前一直是 Linux 內核開發人員在全球使用的主要源代碼工具。開放源碼社區中的有些人覺得BitKeeper 的許可證並不適合開放源碼社區的工作,因此 Torvalds 決定著手研究許可證更為靈活的版本控制系統。儘管最初 Git 的開發是為了輔助 Linux 內核開發的過程,但是我們已經發現在很多其他自由軟件項目中也使用了 Git。

優勢

1、版本庫本地化 支持離線提交,相對獨立不影響協同開發

   每個開發者都擁有自己的版本控制庫,在自己的版本庫上可以任意的執行提交代碼、創建分支等行為。
 例如,開發者認為自己提交的代碼有問題?沒關係,因為版本庫是自己的,回滾歷史、反覆提交、
 歸併分支並不會影響到其他開發者。

2、更少的“倉庫汙染”

    git對於每個工程只會產生一個.git目錄,這個工程所有的版本控制信息都在這個目錄中,
 不會像SVN那樣在每個目錄下都產生.svn目錄。

3、把內容按元數據方式存儲,完整克隆版本庫

     所有版本信息位於.git目錄中,它是處於你的機器上的一個克隆版的版本庫,
  它擁有中心版本庫上所有的東西,例如標籤、分支、版本記錄等。

4、支持快速切換分支方便合併,比較合併性能好

 在同一目錄下即可切換不同的分支,方便合併,且合併文件速度比SVN快。

5、分佈式版本庫,無單點故障,內容完整性好

    內容存儲使用的是SHA-1哈希算法。這能確保代碼內容的完整性,
 確保在遇到磁盤故障和網絡問題時降低對版本庫的破壞。

git安裝

  • 1、Linux安裝

    直接在終端輸入 sudo apt-get install git-core
    
  • 2、windows安裝
    首先進入官網下載對應版本,然後點擊exe文件一直默認安裝即可。

git使用(主要針對windows)

  • 1、配置身份(windows打開GitBash,Linux打開shell)——(提交代碼的時候就知道是誰提交的)如下所示:)

    git config --global user.name "Your Name"
    git config --global user.email "Your email"
    

    配置完成之後同樣的輸入
    git config –global user.name和
    git config –global user.email 即可看到用戶名和郵箱

  • 2、創建代碼倉庫

    進入到你需要創建倉庫的目錄直接在Git Bash中輸入
    git init
    即可創建完之後會在你創建倉庫的目錄下生成一個隱藏的.git文件夾,這個文件夾就是用來記錄本地所有的Git操作的(如果想刪除倉庫直接刪除.git文件夾即可)。

  • 3、提交本地代碼(分為兩步add 和commit)

    • add添加文件

          add是將需要提交的代碼先添加進來,commit則是真正的提交操作。
        比如我們在D盤的Project下面有一個Test文件夾和Hello world文件,如果想提交Hello world文件,
        則需要先添加——命令如下:
         git add Hello world
        如果想添加整個D盤整個Project文件夾下的Test文件夾則可以這樣寫:
         git add Project
        如果你還是覺得複雜還可以這樣寫(將Project文件夾下的所有文件夾進行添加):
         git add .
      
    • commit提交文件

      上面的已經將文件添加好了,我們來提交一下,命令如下:
       git commit -m "First commit."
      

注意 : 在commit命令的後面一定要通過-m參數來加上提交的描述信息,沒有描述信息的提交被認為是不合法的。

  • 4、忽略文件

    Git提供了一種可配置性很強的機制允許用戶將指定的文件或目錄排除在版本控制之外,他回檢查代碼倉庫的根目錄下是否存在一個名為.gitignore的文件,如果存在的話就去一行行讀取這個文件的內容,並把每一行指定的文件或目錄排除在版本控制之外。

    注意 : .gitignore中指定的文件或目錄是可以使用星(*)通配符的。

       在終端輸入 Hello world/ 這樣就表示把 Hello world文件忽略掉了,然後使用add命令進行添加
      git add .
     然後執行commit命令完成提交
     git commit -m "Sencond commit."
    
  • 5、查看修改內容(使用status命令就可以了命令如下:)

    git status
    
  • 6、 查看更改內容

    • 1、查看所有文件的更改內容

      git diff
      
    • 2、查看單個文件的更改內容

      git diff d:Project/Hello world.txt
      
  • 7、撤銷未提交的修改

    比如我們D盤Project目錄下的Hello world 原來內容為123,我們修改為456
    ,然後想撤銷修改我們可以使用checkout命令,如下:
    git checkout d:Project/Hello world.txt
    然後重新輸入git status即可查看結果(這種只能針對沒有執行 git add命令的文件)如果執行了add 命令的
    就不能取消了嗎?當然不是,如果想要執行撤銷命令先要取消添加,才能執行撤銷提交。取消命令是reset,如下所示:
    git reset HEAD d:Project/Hello world.txt
    
  • 8、查看提交記錄(可以使用log命令查看歷史提交記錄)

    git log(查看所有的提交記錄)
    
    • 比如我們的id是123,那麼查看具體的命令如下:

      git log 123 (查看id為123的具體的提交記錄)
      
    • 查看一行提交記錄呢,命令如下:(命令是-1)

       git log 123 -1
      
    • 如果想查看修改的具體內容呢,命令如下:(命令是-p)

      git log 123 -1 -p
      
  • 9、git分支

    • 1、查看分支

      git branch -a
      
    • 2、創建分支

      git branch "分支名稱"
      
    • 3、切換分支

      git checkout “分支名稱"
      
    • 4、合併分支到主幹上

       git checkout master
       git merge "分支名稱"
      
    • 5、刪除分支

       git branch -D 分支名稱
      
  • 10、與遠程版本庫協作

    • 1、下載代碼到本地(clone)

       git clone "地址“
      
    • 2、提價代碼到遠程庫(push)

      git push origin master (其中origin指定的是遠程版本庫的Git地址,master指同步到那個分支上)
      
    • 3、同步遠程版本庫的代碼到本地(fetch)

      git fetch origin master

    • 4、查看遠程版本庫修改了那些東西

      git diff origin/master

    • 5、分支上的修改合併到主幹上

      git merge origin/master

    • 6、從遠程庫同步最新的代碼並且合併到本地

      git pull origin/master

感謝

Git的優勢和用法

關於我

Silence瀟湘夜雨

碼雲

github

掘金

個人博客

相關文章

Android海外應用內支付之ONEstore(韓國支付SDK)集成

Androidsocket高級用法(自定義協議和ProtocolBuffer使用)

Android獲取驗證碼自動填充

win7下基於nginx和ffmpeg的rtmp流媒體服務器搭建