首頁 > 軟體

Ubuntu下Git與Github的安裝使用

2020-06-16 17:56:28

Git的簡介

Git是2005年Linus Torvalds 為了幫助管理 Linux(R) 核心開發而開發的一個開放原始碼的版本控制軟體,正如所提供的文件中說的一樣:

Git 是一個快速、可延伸的分散式版本控制系統,它具有極為豐富的命令集,對內部系統提供了高階操作和完全存取。

Git的安裝與設定

安裝Git

Ubuntu 10.04源里有Git(最新版本是Ubuntu 15.04),直接用yum,apt-get安裝即可。安裝後直接使用即可,一些初始化的資訊在下面有介紹。

設定ssh-key

Github使用ssh tunnel(加密通道,不做介紹了)。因此要先產生一枚ssh-key 上傳到Github上。

$ ssh-keygen -C 'your@email.address' -t rsa

然後確認預設路徑,再連續輸入2次密碼(直接回車則密碼為空)即可。 (備註1)

設定git的輸出格式和顏色

git預設的輸出不是很友好,不容易閱讀。不過我們可以通過修改git設定的方式來自定義git的輸出格式和顏色,具體方法詳見:讓Git 多種顏色和自定義log格式輸出  http://www.linuxidc.com/Linux/2015-08/120995.htm

Github註冊及Git的簡單操作

http://github.com(支援漢語),註冊後帳號右上角有”Your Repositories”,選擇”Create One”。在”Project name”處輸入名字後,它會顯示出一個建立新專案的小教學。 說一下在原生的一些操作,假設你的程式碼文件已經存在了 ~/work資料夾中,那麼:

Git的初始設定

$ git config --global user.name "Your Real Name"
$ git config --global user.email  you@email.address

這些是要在以後版本資訊裡面出現的東西。

初始化Git倉庫(init)

$ cd ~/work
$ git init
# 然後會顯示:
Initialized empty Git repository in $PROJECT/ .git/

表示在當前目錄下闖將了一個.git的隱藏目錄,這個就是所謂的Git倉庫了。此時的~/work資料夾,我們也改名稱之為工作樹。

生成快照(take a snapshot)

將工作樹中的一些文件存至Git倉庫中,並且變成Git倉庫能夠識別的資料格式。

$ cd ~/work
$ git add .

注意:add 與後面的”.”是有一個空格的,這個”.”表示所有的文件。如果只生成一個文件,則將”.”改為文件名即可。

提交(commit)

所生成的快照被存放到一個臨時的儲存區域, 稱該區域為索引。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

PULL/PUSH

  • git-pull:從遠端倉庫取回版本更新
  • git-push:可將本地版本更新推播到遠端倉庫中。

團隊開發流程

$ git clone  使用者名稱@IP:目標路徑
    # 進行開發
$ git add 改動的檔案
$ git commit
$ git pull
    # 解決合併問題
$ git push

push命令只能將程式碼push到你的分支上。

合併&分支

分支的作用有很多,並行開發多版本,並行開發新功能,測試某個獨立功能點等。而這些總結起來,本 目的就是為了避免不同版本的程式碼之間互相影響而當這種影響已經不存在了,就需要合併了

1.產生新分支(名為local):

$ git branch local

2.檢視存在多少分支

$ git branch
    local
    * master

3.切換到分支/主資料夾

$ git checkout local

4.分支的合併

$ git checkout master # 將當前分支切換為master
$ git merge local # 將local分支與當前分支合併

5.刪除分支

$ git branch d local

備註1

關於ssh命令:

  • -keygen : 產生公開鑰 (pulib key) 和私人鑰 (private key)。
  • -c : 要求壓縮所有資料(包含 stdin, stdout,stderr 和 X11 和 TCP/IP 連線) 壓縮演算規則與 gzip 相同
  • -t : 強制設定 pseudo-tty。

備註2

注意:複製的時候要一點不差的拿過去,一個符號一個空格都可能會導致金鑰不能使用,其中 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 


IT145.com E-mail:sddin#qq.com