iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 19
0
自我挑戰組

30天教你學會Git系列 第 19

[Day19] 昨天聊了推的概念,今天來.....拉?

  • 分享至 

  • xImage
  •  
  • 昨天聊了指令push嘛,那有指令pull嗎?
  • 有的!昨天的push是把本機的東西放上GitHub更新,pull則是把東西給拉下來,更新本地!
  • 但在談pull之前,我們得先聊聊fetch是啥呢?!

Fetch 是幹嘛的啊?

  • Fetch 也就是把網路上的東西給拉下來!
  • 為了方便,我們直接在Github直接對Hello.txt進行更改,營造出一種有別人去改過你檔案的情況!
    • 之後按下 Commit Changes
    • 更改好了!那我們來試試看git fetch吧!
$ git fetch
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://github.com/jackey10055206/test
   daf85b3..ab6fba2  master     -> origin/master
  • 雖然這不是我的圖,不過這真的是一個很好的例子啊!!

  • 看得出來我們有把東西給拉下來吧?! 但怎麼好像顯示的怪怪的!

  • 我們先看看原始架構長怎樣

  • 當執行了git fetch時,你的圖會變成..

  • 你剛剛Fetch下來的東西會變成另外一條分支所分出去的

  • 那既然這個分支是從原本的master分出去的,並且分支上的內容還比master上的內容還要來得更新!這樣的情況有沒有讓你想到什麼?

  • 沒錯!就是Git merge,而且這種merge型態還是fast-forward!

$ git merge origin/master
Updating daf85b3..ab6fba2
Fast-forward
 Hello.txt | 1 +
 1 file changed, 1 insertion(+)
  • 經過git merge之後,你的圖就會變成這樣

那可以來談Pull了嗎?

  • 可以!而且你會很容易懂Pull在幹嘛

git pull = git fetch + git merge

  • 就只是這樣而已,git pull就是上去把東西抓下來(git fetch) 和 把東西合起來(git merge)

明天再來聊聊一些狀況題吧!
參考資料來源


上一篇
[Day18] 該回去聊聊快被遺忘的GitHub了吧!
下一篇
[Day20] 你要Push你要先講啊!!
系列文
30天教你學會Git30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言