簡體   English   中英

git pull 在不同的分支上

[英]git pull on a different branch

如果我在一個分支上工作,然后意識到我需要將另一個分支合並到我的這里是我當前的工作流程(對於這個例子,假設我在我的分支上工作並想要合並到 master):

git stash
git checkout master
git pull
git checkout my-branch
git merge master
git stash pop

除了當前簽出的分支之外,git 中有沒有辦法拉出一個分支,或者有更好的方法來做到這一點?

例如,這就是我想做的事情(再次假設我在 my-branch 並想合並到master ):

git pull master
git merge master

git-pull 手冊頁說 git pull 只是 get fetch 然后是 git merge,那么有沒有辦法在當前簽出的分支之外的分支上執行 git pull 的合並部分?

還是我要求的只是不可能的?

我發現了一個對我有用的咒語:

git fetch origin master:master

那么(如果你想立即合並):

git merge master

我真的很驚訝找到答案是多么困難,因為這似乎是一個常見的用例。

嘗試這個:

git pull yourRepositoryName master

我們可以使用git pull命令從同一存儲庫中的另一個分支獲取更改,如下所示:

$ git pull origin <target-branch>

請參閱man git-pullEXAMPLES部分:

 • Merge into the current branch the remote branch next: $ git pull origin next

你也可以試試這個:

git fetch
git merge origin/master

這不會更新您的本地master指針,但會將最新的origin/master合並到您當前的本地分支中。

將更改從 branch1 拉入到 branch2

假設你有這些分支:

  • 掌握
  • 分支1
  • 分支2

因此,您希望將更改從 branch1 拉入到 branch2 這是您可以執行的操作:

git checkout branch2
git pull origin branch1

可靠的方法是:

git checkout master
git pull --ff origin master
git checkout devel
# git merge --ff devel

所以有一個別名

git config --global alias.update-branch '! bash -c "X1=\`git symbolic-ref HEAD 2> /dev/null | cut -b 12-\`; echo pulling branch $1 ... && git checkout $1 && git pull --ff origin $1 && git checkout \$X1 "'

# call it from 'devel' branch:
git update-branch master

您可以改進它以符合您的要求,例如現在將 master 合並到當前分支中,...

我主要使用 IntelliJ,我希望有一個上下文菜單項可以做這個 master 分支更新,然后將 master 合並到 current。

如果您通常將一些遠程分支合並到您的“feature/*”分支中,例如“master”、“develop”或“release/*”,那么最好的策略不是合並,而是 rebase 到遠程分支上. 然后來自您的分支的提交將應用於其他分支歷史記錄。 之后它可以快進合並到這個遠程分支。

git pull origin master
git rebase master

暫無
暫無

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

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