簡體   English   中英

Git強制從遠程拉分支

[英]Git force pull branch from remote

所以我在GitHub上有2個分支:master和branchA。 假設我一直在研究master,並且master領先3次提交。 因此,master上的提交d,e和f不在branchA中。 接下來說,我的同事通過提交g將branchA上傳到GitHub。 因此,我們有:

master: a, b, c, d, e, f
branchA: a, b, c, g

現在說我要切換到branchA並完全提取GitHub上的內容。 我遇到的問題是,當我使用git branch branchA ,它將自動使用master作為我的起始位置,從而添加d,e,f;當我拉出branchA時,由於g和d,e,f尚未發生沖突兼容。

有沒有辦法從GitHub中提取信息,以使我的本地提交日志與GitHub上的日志匹配? 我嘗試了git pull -f但是顯然也不起作用。

git fetch origin
git checkout origin/branchA -b <local branch name>

這將創建一個名為本地分行您指定的精確復制branchAorigin 如果您的GitHub遙控器被命名為origin以外的其他origin ,請進行相應調整。

您也可以使用git branch指定起點:

git fetch origin
git branch <local branch name> origin/branchA
git checkout <local branch name>

如果您打算檢出正在創建的分支,則git checkout-b標志只會使操作縮短一步。

此外,如果您希望本地分支名稱與遠程分支相同,則可以使用更短的方法:

git fetch origin
git checkout -t origin/branchA

這將創建一個本地branchA相匹配originbranchA

你應該

git fetch

然后檢查發生了什么類似的事情

git log --all --oneline --graph --decorate

現在,您可以合並或重新整理同時完成的工作。 前綴為“ origin”的所有分支都將是github上的內容(假設您是從那里克隆的)。 本地分支機構的顏色也將不同。

如果您要處理尚未處理的已被下拉的分支,請簽出並在本地分支中跟蹤

git checkout -t origin/someBranch

僅在合並或修改自己的工作的特殊情況下,才使用pull。 根據其他人的所作所為,我可能會選擇合並而不是合並。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM