Git Learning — 5

Rose Chang Dycd
Feb 18, 2023

Newbie Git Notes

About Push

git push origin master:簡寫版,即把本地的 master 推一份到儲存庫(遠端)
git push origin master:master :完整版,把儲存庫(本地)的master推一份到儲存庫(遠端)的origin, “:master” 並且在線上新增一個 master 的分支。

延伸題(1) 在遠端新增一個本地沒有的分支!?
git push origin master:pig
把儲存庫(本地)的master推一份到origin,” :pig “ 並且在線上新增一個 pig 的分支 (即便線上沒有 pig 分支)

延伸題(2) 刪除遠端分支!?
git push origin :pig → “ :pig” 前沒東西,即 “把本地一個空白的東西,覆蓋雲端的pig”,達到”刪除”的效果

About Clone

git clone 網址 → 將儲存庫(遠端)專案,整個拉到 儲存庫(本地)
git clone 網址 abc → 將儲存庫(遠端)拉到 儲存庫(本地)的abc 目錄

About Fetch

git fetch 是把 "你有但我沒有" 的東西抓下來,本地master不動,
僅把遠端抓下來的master變成:<遠端目錄名>/master → i.e. origin/master
即,把 "貼紙"、Commit# 抓到本地,但檔案狀態依舊是自己原本的、HEAD也不動。

如果要把 HEAD 移動到跟團隊一致,即移動到最新,檔案狀態變成跟團隊一樣的,可以:
1. reset
2. rebase
3. merge (fast-forward,快進合併)

而 git pull = git fetch + git merge (會自動merge)

--

--