Git是2005年Linus Torvalds 為了幫助管理 Linux(R) 內核開發而開發的一個開放源碼的版本控制軟件,正如所提供的文檔中說的一樣:
Git 是一個快速、可擴展的分布式版本控制系統,它具有極為豐富的命令集,對內部系統提供了高級操作和完全訪問。
Ubuntu 10.04源裡有Git(最新版本是Ubuntu 15.04),直接用yum,apt-get安裝即可。安裝後直接使用即可,一些初始化的信息在下面有介紹。
Github使用ssh tunnel(加密通道,不做介紹了)。因此要先產生一枚ssh-key 上傳到Github上。
$ ssh-keygen -C '[email protected]' -t rsa
然後確認默認路徑,再連續輸入2次密碼(直接回車則密碼為空)即可。 (備注1)
git默認的輸出不是很友好,不容易閱讀。不過我們可以通過修改git配置的方式來自定義git的輸出格式和顏色,具體方法詳見:讓Git 多種顏色和自定義log格式輸出 http://www.linuxidc.com/Linux/2015-08/120995.htm
http://github.com(支持漢語),注冊後帳號右上角有”Your Repositories”,選擇”Create One”。在”Project name”處輸入名字後,它會顯示出一個創建新項目的小教程。 說一下在本地的一些操作,假設你的代碼文檔已經存在了 ~/work文件夾中,那麼:
$ git config --global user.name "Your Real Name"
$ git config --global user.email [email protected]
這些是要在以後版本信息裡面出現的東西。
$ cd ~/work
$ git init
# 然後會顯示:
Initialized empty Git repository in $PROJECT/ .git/
表示在當前目錄下闖將了一個.git的隱藏目錄,這個就是所謂的Git倉庫了。此時的~/work文件夾,我們也改名稱之為工作樹。
將工作樹中的一些文檔存至Git倉庫中,並且變成Git倉庫能夠識別的數據格式。
$ cd ~/work
$ git add .
注意:add 與後面的”.”是有一個空格的,這個”.”表示所有的文檔。如果只生成一個文檔,則將”.”改為文檔名即可。
所生成的快照被存放到一個臨時的存儲區域, 稱該區域為索引。Git的每次更新都需要提交一次。
$ git commit
# 一般來說都需要對跟新的版本進行說明,則上述命令應為
$ git commit -m "你的版本更新信息"
還記得剛剛生成的密鑰吧,現在我們要把它放到github上了
$ cd ~/.ssh
$ ls
會顯示”idrsa idrsa.pub” 兩個文件,前一個是私鑰,.pub的是公鑰。將公鑰粘貼到你github帳號中的 SSH Public Keys處即可。 (備注2)
提供了文檔忽略機制,Git可以將工作樹中你不希望接受 Git 管理的文檔信息寫到同一目錄下的 .gitignore 文件中。以文件”dust”為例:
$ cd ~/work
$ echo "dust" > .gitignore
$ git add .
先敘述這麼多,有更多的需要可以到git官網上去查http://git-scm.com
$ git clone 用戶名@IP:目標路徑
# 進行開發
$ git add 改動的文件
$ git commit
$ git pull
# 解決合並問題
$ git push
push命令只能將代碼push到你的分支上。
分支的作用有很多,並行開發多版本,並行開發新功能,測試某個獨立功能點等。而這些總結起來,本 目的就是為了避免不同版本的代碼之間互相影響而當這種影響已經不存在了,就需要合並了
$ git branch local
$ git branch
local
* master
$ git checkout local
$ git checkout master # 將當前分支切換為master
$ git merge local # 將local分支與當前分支合並
$ git branch d local
關於ssh命令:
-keygen
: 產生公開鑰 (pulib key) 和私人鑰 (private key)。-c
: 要求壓縮所有資料(包含 stdin, stdout,stderr 和 X11 和 TCP/IP 連接) 壓縮演算規則與 gzip 相同-t
: 強制配置 pseudo-tty。注意:復制的時候要一點不差的拿過去,一個符號一個空格都可能會導致密鑰不能使用,其中 Permission denied (publickey). fatal: The remote end hung up unexpectedly 這個問題就是因為不能識別密鑰而沒有權限導致的。
GitHub 教程系列文章:
通過GitHub創建個人技術博客圖文詳解 http://www.linuxidc.com/Linux/2015-02/114121.htm
GitHub 使用教程圖文詳解 http://www.linuxidc.com/Linux/2014-09/106230.htm
Git 標簽管理詳解 http://www.linuxidc.com/Linux/2014-09/106231.htm
Git 分支管理詳解 http://www.linuxidc.com/Linux/2014-09/106232.htm
Git 遠程倉庫詳解 http://www.linuxidc.com/Linux/2014-09/106233.htm
Git 本地倉庫(Repository)詳解 http://www.linuxidc.com/Linux/2014-09/106234.htm
Git 服務器搭建與客戶端安裝 http://www.linuxidc.com/Linux/2014-05/101830.htm
Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm
分享實用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm
GitHub 的詳細介紹:請點這裡
GitHub 的下載地址:請點這裡