iT邦幫忙

1

Git Remote branch & pull & tag

接著上Remote 1來介紹,資料同步的另一種方法pull。

方法二 git pull: git merge及git fetch的綜合體,較為快速。

我們在遠端server master branch創建一個 git_pull_test.txt,此時跟local端不同步了,我們利用git pull直接將遠端server最新的commit合併到我們local端,透過ls,git log都可發現已經成功同步了。

https://ithelp.ithome.com.tw/upload/images/20200602/20126182YKg7Bg85JC.png

git pull有缺點,就是原本是兩個過程,我們可能還可以做一些更動、修改,但git pull是直接跳過過程去一個步驟完成,這樣中間也問題就很難去debug

如果我們用git fetch origin master,會獲取FETCH_HEAD,我們在此時可以去git diff FETCH_HEAD比較local與遠端FETCH_HEAD的區別,看看到底改了哪裡,考慮是否需要git merge FETCH_HEAD,這樣有更彈性的處理。

除非我們很清楚遠端的修改,且確定遠端的修改並不會對我們的local有任何影響,如衝突等等...就可使用git pull。

如何將local branch push至remote端 ? 又如何將 remote端 branch push至local端?

第一題:

先利用git checkout -b test創建test分支並切換到test分支,再利用git push origin test就可以將local branch push test到遠端,此時點擊github的branch,就可以發現多出一個test得分支。

https://ithelp.ithome.com.tw/upload/images/20200602/20126182wKJUWMbkif.png

第二題:

如果local要同步遠端新創建的branch,或在現有的branch進行修改,就可利用git fetch (分支名)去同步。

https://ithelp.ithome.com.tw/upload/images/20200602/201261823mu9PKokdD.png

如何刪除及重命名遠端branch?

git branch -a:可查詢到local所有的branch

git branch -d (分支名):可刪除指定local分支

-d,-D差別在於-D可以刪除沒有merge的branch,而-d無法

git push origin --delete (分支名) : 可以刪除遠端server(github)的branch

git branch -m (原分支名) (新分支名) : 可以重新命名 local branch。

而如果要改變遠端branch名字,需要先利用git checkout -b test2,創建一個local branch,接著再利用
git branch -m test2 test3,將local branch重命名,最後將重命名後的branch利用,git push origin test3 給push去遠端即可。

https://ithelp.ithome.com.tw/upload/images/20200602/20126182uqswdYrEzr.png

如何在遠端快速找到特定歷史的commit?

需要找到特定的歷史commit,commit message及commit number都不是很好記,所以這時候,我們就可以利用tag在特定的commit留下標註。

tag (標籤):即是對某個commit所做的標註。

https://ithelp.ithome.com.tw/upload/images/20200602/20126182Nk0q0OBmgA.png

標籤預設會對指定分支下所有commit做標註,而我們也可利用commit值,對特定commit做標註。如下圖:

https://ithelp.ithome.com.tw/upload/images/20200602/20126182vmSTDDnvM7.png

git fetch -t : 可以獲取遠端的tag

git tag -l :可顯示目前所有的tag

git tag (標籤名) :在local創建 tag

git push --tag : 可以將local tag push至 遠端

git tag -d (標籤名) :可以刪除local標籤

git push origin : refs/tags/(標籤名) :可以刪除遠端tag

https://ithelp.ithome.com.tw/upload/images/20200602/20126182IIDDlw64di.png


尚未有邦友留言

立即登入留言