Git 課程學習筆記-ep2

Jordan Tseng
JordanTTCDesign
Published in
Sep 29, 2020

馬上來到第二堂課拉XD,主要說 github 遠端操作。

遠端資料庫是你的或者是其它電腦上的 repository 的副本 ; 可以透過網路傳送你的 commit 至其它的電腦。

遠端資料庫是用來備份的,讓本地端可以回復文件到之前的狀態 。

連結 github 遠端資料庫 remote repository 有兩種方式:

1. 先建立好本地端資料庫 -> 建立遠端資料庫 -> 最後再做連結

2.直接在 github 建立遠端資料庫 -> git clone下來

下面介紹一下遠端資料庫操作

註冊:從遠端數據庫連結會有幾行 code

git remote add origin https://.....

解析上面字彙🥳🥳:

git remote add:增加遠端數據庫

origin:這個數據庫在本地數據庫的代號名稱(可自訂)大部分人會把他們的 remote 命名為 origin,因為當你使用 git clone 時,git 會自動把你的 remote 命名為 origin

更新到遠端 master 分支

git push -u origin master

master 就是要推 origin 的哪個分支 → master

  • -u 是因為如果有很多遠端數據庫,一段時間內預設推固定一個,之後只要 git push 即可!!
  • 如果寫 git push origin dev,順便就新建一個 dev 分支

如果有很多遠端數據庫可以使用:查詢

git remote

如果要包含網址

git remote -v

抓取資料

大家一般想看別人在 github 的程式碼,會使用 git clone 抓下來 ; 另外在專案一開始也使用 git clone 抓。

但 git clone 和 git pull 差異是什麼呢?

git clone :主要是下載整個遠端資料庫,只需執行一次。

git pull :更新遠端資料庫資料皆使用此指令。

共同編輯

意思是把別人加入到你的 github 的 repo 中,時常在

步驟如下:

在 git hub setting → manage access → 輸入密碼 → invited a collaborator → 輸入對方信箱 → 對方信箱會收到邀請信件。

之後對方只要在他的本地端使用 git clone 網址,就可以開始合作拉🧐

觀看遠端數據庫列表(包含 rul):git remote -v

注意這是要信任對方,不然設定共同編輯,他可以給你亂搞喔🤪🤪!!

HEAD

我們首先看一下 “HEAD”,HEAD 是一個 reference,它是指向目前所 checkout 的 commit,基本上,其實就是你目前所在的 commit。

在 commit tree 中,HEAD 總是指向最近的一次commit。大部份 git 的指令如果要修改 commit tree 的狀態的話,都會先改變 HEAD 所指向的 commit。

HEAD 通常指向一個 branch 的名稱(比如 master)

移動 HEAD 位置

最一開始 head 會跟著 master,但是當我們要時光回朔到以前的紀錄點,就要使用:

git checkout sha-1值

sha-1 值可以使用 git log 查詢看看結果:

git log

git log 中 sha-1 值,只要複製前面幾碼就好🥴。

如果回到舊版本看完資料後,想回到新版本,就直接:

git checkout master (或其他分支名稱)

相對位置移動法

只使用sha-1值其實不方便,因為每次都要查詢,如果只是回到前幾次,就使用相對位置來移動即可

git checkout HEAD^   // ^數量代表往回幾步

“~” 符號

假設需要在 commit tree 中向上移動多個 commit。使用太多 ^ 會非常討人厭🤯🤯🤯,所以 Git 也加入了波浪 ~ 符號。

git checkout HEAD~1  

波浪符號後面可以選擇一個數字(你也可以不選擇),該數字是告訴 Git 要向回移動多少個 commit 。

注意!!當要回到 master 時,要使用:

如果直接使用 master 所在位置編號,會導致需要 commit 時,master 會停留在原版本而不會自動跟上

未完待續

--

--