git切換遠端分支並拉取最新程式碼

周健文發表於2020-12-30

檢視遠端所有分支

$ git branch -a

建立分支

git branch [branchname]

需要注意,建立分支時,不會有什麼提示。

新建分支並切換到指定分支

git checkout -b master origin/master

git checkout -b 本地分支名 origin/遠端分支名

拉取遠端分支程式碼

git pull origin/master

使用上面的命令可以建立分支名並且關聯到遠端的分支,但是遠端分支存在git push多次,發現關聯分支的原生程式碼不是最新的,只需要在git pull 後面新增origin/master 就能獲取最新程式碼。

$ git pull origin master
From github.com:xxxx@gamil.com/xxxxx
 * branch            master     -> FETCH_HEAD
Already up to date.

刪除本地分支

刪除本地已合併的分支:

$ git branch -d [branchname] 

某些情況下可以用

$ git branch -D [branchName] (使用時應注意是否已合併)

刪除遠端分支

$ git push origin --delete [branchname]

在這裡插入圖片描述
提示刪除了一個名為 201804019-test-files 的分支,
注意: 在刪除遠端分支時,同名的本地分支並不會被刪除,所以還需要單獨刪除本地同名分支
如果發生以下錯誤:
error: unable to delete ‘origin/xxxxxxxx-fixbug’: remote ref does not exist
error: failed to push some refs to ‘git@github.com:xxxxxxxx/xxxxxxxxxx.git’
解決辦法: git checkout xxxxx-fixbug 切換到當前分支上, 然後再 進行 git push --delete origin origin/xxxxx-fixbug
此時將不會再發生錯誤 。

檢視本地分支及追蹤的分支

$ git branch -vv
* dev    e67e3ef [origin/release/caigou_v1.0] 供應商詳情頁面
 master 11160c2 [origin/master: behind 5] Merge branch 'master' of https://git.jointforce.com/scm/join/yj-stat

*表示當前所在分支,[遠端分支]表示當前本地分支追蹤的遠端分支,最後一個是最近一次提交的註釋。

將本地分支推送到遠端

$ git push -u origin dev:release/caigou_v1.0

git push <遠端主機名> <本地分支名>:<遠端分支名>

成功後顯示如下:

Counting objects: 8, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (8/8), done.
Writing objects: 100% (8/8), 754 bytes | 754.00 KiB/s, done.
Total 8 (delta 6), reused 0 (delta 0)
remote:
remote: Create pull request for release/caigou_v1.0:
remote:   https://git.jointforce.com/projects/JOIN/repos/yj-stat/compare/commits?sourceBranch=refs/heads/release/caigou_v1.0
remote:
To https://git.jointforce.com/scm/join/yj-stat.git
   a22ed65..e8782b2  dev -> release/caigou_v1.0
Branch 'dev' set up to track remote branch 'release/caigou_v1.0' from 'origin'.

上述命令表示將本地dev分支推送到遠端release/caigou_v1.0分支。

相關文章