Git

Git 的介紹

Git 是什麼

何謂版本控制
版本控制就是於不同時間點檔案變更的紀錄。
舉例而言,各位應該都有類似的經驗:

Git 是一個分散式版本控制軟體

Git 是什麼

這樣做的問題是:

  • 檔案命名十分隨興,容易搞混
  • 多人共同編輯的情況下,不知道是誰變更的,且可能覆蓋到檔案

Git 的特點

1. 免費、開源︰

  •   Git 是 Linus Torvalds為管理Linux核心程式碼而開發
  •   Git 的原始程式碼也是用 Git 在做版本控制的

 

2. 速度快、檔案體積小

  • 記錄檔案內容的「快照」(snapshot)而非整個目錄複製貼上

Git 的特點

3. 分散式系統

  •  有共同的伺服器,但即使在沒有伺服器或是沒有網路的環境,依舊可以使用 Git 來進行版本控制
  •  待伺服器恢復正常運作或是在有網路的環境後再進行同步,不會受影響。而且,事實上在使用 Git 的過程中,大多的 Git 操作也都是在自己電腦本機就可以完成。

Git 的缺點

  • 易學難精
  • 指令多而複雜
  • 但是根據80/20法則,20%指令足以應付80%的工作

GitHub

GitHub 是什麼

  • GitHub是透過Git進行版本控制的軟體原始碼代管服務平台
  • 2018年6月,Github 被 Microsoft 收購了。

GitHub 跟 Git 的差異

  • Git是版本控制的軟體
  • GitHub是一個商業網站,本體是一個Git伺服器
  • 提供將Git控制的程式碼上傳到網路上的空間
  • Github 可與他人共同協作
  • Github 可互相交流

Git 的基本操作

下載 Git

先到 Git 的網站下載 git。
https://git-scm.com/

使用者設定

打開 cmd 輸入以下句子︰

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

「Your name」是你的帳號名稱

 

  •  git config --global user.email "youremail@gmail.com"

「youremail」是指你註冊時的信箱

$ git config --global user.name "Your Name"
$ git config --global user.email "youremail@gmail.com"

確認設定

確認目前設定值:

git config --list

Git 初始化

$ cd Destop/SIRLA/git #切換到目標目錄
$ mkdir git-practice #建立git-practice目錄
$ cd git-practice #切換到git-practice目錄
$ git init #初始化目錄,讓git對這個目錄進行版本控制

cmd 指令解釋

cd 指令︰移動你所在的目錄(資料夾)

mkdir 指令︰創建一個目錄 (資料夾) 

 

Git 初始化

$ cd Destop/SIRLA/git #切換到目標目錄
$ mkdir git-practice #建立git-practice目錄
$ cd git-practice #切換到git-practice目錄
$ git init #初始化目錄,讓git對這個目錄進行版本控制

git init

執行完後,資料夾中會多一個.git的資料夾,裡面存放的就是git用來進行版本控制的檔案,只要把這個資料夾刪除,git就會解除對這個資料夾的版本控制

Git 的儲存流程

將檔案放置到暫存區

查看目前狀態,因為是空的資料夾,所以暫存區沒有任何東西

輸入 「$ git status

$ git status
On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)

將檔案放置到暫存區

來新增一個檔案 

先輸入「 echo "Hello, git." > "welcome.html"

再輸入 「$ git status

$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        welcome.html

nothing added to commit but untracked files present (use "git add" to track)

將檔案放置到暫存區

將檔案新增到暫存區後再看一次狀態 

先輸入「 git add welcome.html

再輸入 「$ git status

$ git add welcome.html
$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

        new file:   welcome.html

將檔案從暫存區提交(commit)到倉庫中

$ git commit -m "initial commit" #將暫存區commit,並用-m參數加入說明
[master (root-commit) 4443229] initial commit
 1 file changed, 1 insertion(+)
 create mode 100644 welcome.html

輸入「$ git commit -m  "inital commited"

「-m " "」的用途是對該文件進行的一些說明,是必須的。

查看提交紀錄

$ git log
commit 4443229c2018ef511f283ae8469e855d8b8c5dab (HEAD -> master)
Author: Sam Yang <samabc75@gmail.com>
Date:   Sun Oct 21 13:22:11 2018 +0800

    initial commit

輸入「$ git log

 

查看提交紀錄

$ git log
commit 4443229c2018ef511f283ae8469e855d8b8c5dab (HEAD -> master)
Author: Sam Yang <samabc75@gmail.com>
Date:   Sun Oct 21 13:22:11 2018 +0800

    initial commit

分幾個部分來看:

  • 一連串的亂數: 使用SHA-1演算法產生出來的結果,重複機率非常低,用途為做為紀錄的識別
  • Author: 誰commit這個紀錄,以及他的email
  • Date: 何時commit的
  • 最後一行是commit時留下的訊息

Lab02 利用 GitHub 建立個人的 Github page

建立 Git 帳戶

GitHub提供了一個github page的功能,可以供使用者存放靜態網頁(純前端,沒有後端的網頁)

  1. 申請github帳號
  2. 創建一個repository叫做,username.githug.io,username請填上你的github帳號名稱。注意,每個帳號只能開一個這樣的repository。

初始化 Git

初始化git,並將檔案上傳至GitHub

$ cd "your directory" #切換到你的資料夾中
$ git init #git初始化
$ git add --all #將所有檔案加入暫存區
$ git commit -m "initial commit" #提交至儲存區
$ git remote add origin https://github.com/Bluebell3310/Bluebell3310.github.io #新增遠端位置,名稱命名為origin,伺服器位置為後面那一串
$ git push -u origin master #將master分支中推向origin這個位置

Git & Github教學

By sheep_of_block

Git & Github教學

  • 72