拉合远程分支而不合并

时间:2018-05-23 10:04:41

标签: git git-push git-pull

我创建了一个分支b1,我对它进行了一些更改,然后将其推送到远程存储库:

git branch b1
git checkout b1
git add newfile.txt
git commit -m "adding a new file"
git push origin b1

在另一台连接到远程存储库的计算机上,我尝试拔出分支而不将其与master合并:

$git branch
*master
$git pull origin b1
remote: Counting objects: 4, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From sl*******02:/opt/git/projet1
 * branch            b1    -> FETCH_HEAD
Updating fca3b48..1d96ceb
Fast-forward
 newfile.txt |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 newfile.txt

$git branch
*master

我的期望:

$git branch
*master
b1

5 个答案:

答案 0 :(得分:6)

您可以使用git fetch origin b1仅在不合并的情况下获取远程分支。

请参阅:https://git-scm.com/docs/git-fetch

基本上git pullgit fetch && git merge

的快捷方式

合并执行,因为您在主分支上,而不是本地b1分支。

答案 1 :(得分:1)

您想要使用

结帐远程分支
git checkout b1

如果您使用的是git版本< 1.6.6这样做的方法是

git checkout -b b1 origin/b1

答案 2 :(得分:1)

git remote update origin —prune

答案 3 :(得分:1)

您实际上是在问两个问题:

  • 标题-如何不合并就拉(我最初是在这里来到这个问题的)
  • 在说明中-如何在不合并到master的情况下签出分支

不合并就拉远程分支

# Assuming you are on wanted branch (b1) already

git pull --rebase

没有merge,只有rebase

从源签出远程分支

git fetch 
git checkout b1

不合并到master,创建新分支b1

答案 4 :(得分:0)

提交前也可以

使用以下命令

git stash
git pull
git stash apply