git 版本管理入門實戰班

公告

還沒領門禁卡的請在下課時來領

FB 社團

心理建設

  1. git 是工具
  2. 沒有實作與練習就代表你不會

Let's Get Started!

Movie Time!

回顧一下上一堂課...

git add .
git commit -m "你的版本訊息"
git remote add origin "你的遠端 git 儲存庫位置"
git push origin master

要把本機端的程式碼 "推" 上雲端...

git log

當你要檢視 commit 是否成功時...

到底這些指令的意思是什麼?

git add .
git commit -m "你的版本訊息"
git remote add origin "你的遠端 git 儲存庫位置"
git push origin mater

SourceTree 軟體

為了讓大家能夠更容易的掌握目前工作目錄裡檔案的狀態

檔案在 git 底下的四種狀態

git status

git status

當我們需要查看工作目錄的狀態時...

或是看更精簡一點的狀態...

git status -s

接下來創建一個新的儲存庫

mkdir lesson2
cd lesson2
git init

檔案在 git 底下的四種狀態

  1. untracked (未追蹤的,代表尚未被加入 Git 儲存庫的檔案狀態)
touch lesson2.md

git status

檔案在 git 底下的四種狀態

 

2. staged (等待被 commit 的,代表下次執      行 git commit 會將這些檔案全部送入儲        存庫)

git add .

git status

檔案在 git 底下的四種狀態

 

接下來我們執行一次 commit:

git commit -m "added lesson2.md"

檔案在 git 底下的四種狀態

請在 lesson2.md 輸入一些內容,然後執行:

git status

 

3. modified (已修改的,代表檔案已經被編        輯過,或是檔案內容與上一個版本內容是        不一致的狀態)

git add

 

git add 意思就是要把 untracked 或是 modified 狀態下的檔案改成 staged 的狀態 (等待被 commit 的版本)

git add .

. 代表這個路徑底下的所有檔案

今天你若不想把路徑下所有的檔案都變成 staged 狀態

git add 你要改成 staged 狀態的檔名

檔案在 git 底下的四種狀態

 

4. unmodified (未修改的,代表檔案第一次     被加入,或是檔案內容上一個版本內容是       一致的狀態)

檔案在 git 底下的四種狀態

 

若要把檔案從 staged 的狀態轉回 modified 的狀態...

git reset HEAD 想要移出 staged 狀態的檔案名稱

 復原版本

我們經常會遇到 commit 的程式碼有漏掉某些功能的狀況...

# git 指令與功能

| git 指令       | 功能              |
| ------------- |:----------------:|
| git add       | 把檔案放置 staging |
| git commit    | 把 staged 檔案放置 |
| git status    |                  |

我們先把以下程式碼加入 lesson2.md 並 commit:

 復原版本

然後發現我們忘了寫 status 的功能...

# git 指令與功能

| git 指令       | 功能              |
| ------------- |:----------------:|
| git add       | 把檔案放置 staging |
| git commit    | 把 staged 檔案放置 |
| git status    |                  |

 復原版本

此時我們可以用以下指令 "銷毀" 上一個 commit

# git 指令與功能

| git 指令       | 功能              |
| ------------- |:-----------------:|
| git add       | 把檔案放置 staging  |
| git commit    | 把 staged 檔案放置  |
| git status    | 檢查工作路徑目前的狀態|
git reset --soft HEAD^

# --soft 代表銷毀 commit 但是保留 commit 內容
# HEAD^ 代表上一個 commit (版本)

接下來把程式碼改成正確的,再 commit 即可

 復原版本

當然,銷毀 commit 又再重新 commit 是一件很麻煩的事情,所以我也可以先把漏掉的程式碼改好

# git 指令與功能

| git 指令       | 功能              |
| ------------- |:-----------------:|
| git add       | 把檔案放置 staging  |
| git commit    | 把 staged 檔案放置  |
| git status    | 檢查工作路徑目前的狀態|
git add lesson2.md

git commit --amend --no-edit

--amend 是指重新修改上一個 commit
--no-edit 則是代表不會修改 commit message

接下來用 git commit --amend 指令即可...

 復原版本

今天你若意識到上一個 commit 的程式碼都是垃圾...

 

 

 

jaf;kja;djakfljsblvcmn#IU#OI$U#IO,xmn,mcn48372983798fdsfkjhjrdd
dhkcxkcxkl#UH$#UY$#Ijlkjlkjre48ee98bvcghuehweh32895fhhdfvkjsfhs
ckcjljvkljedslkdj&&^%#$#^$&*^#*&$$#$*(&%$(*&GIFJKLJGKLJLKJTKELR
git add garbage.md

git commit -m "this is garbage commit"

請加入以下檔案:garbage.md

 復原版本

要銷毀掉上一個 commit,並且不保留上一個commit 的內容

git reset --hard HEAD^

 分支 (branch)

在 git 的世界裡,分支 (branch) 是很重要的概念,簡單來說,分支就像是你的程式碼的平行世界,你可能在一個分支上搞砸了,但是不會影響到另一個分支的程式碼

 建立分支

建立分支十分簡單,建立完分支後需要切換到該分支才能開始作業

創立新的分支:
git branch 新分支名稱

切換到該分支:
git checkout 新分支名稱

 切換分支

之後我若要切換到其他的 branch,就可直接下:

git checkout 我要切換到的分支名稱

# 回到預設的分支請輸入:
git checkout master

練習二

1. 請產生一個新的 branch: exercise2,

2. 並在新的 branch 上面加上一個新的 md檔,最後呈現的結果要能長得像這樣:

3. 最後請把新的 branch 推上 github,請使用:

git push origin HEAD
Made with Slides.com