拉远程分支而不合并

Car*_*ole 5 git git-pull git-push

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

git branch b1
git checkout b1
git add newfile.txt
git commit -m "adding a new file"
git push origin b1
Run Code Online (Sandbox Code Playgroud)

在连接到远程存储库的另一台机器上,我尝试拉分支而不将其与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
Run Code Online (Sandbox Code Playgroud)

我所期望的:

$git branch
*master
b1
Run Code Online (Sandbox Code Playgroud)

exm*_*axx 15

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

  • 在标题中 - 如何在不合并的情况下拉动(我最初是为了这个问题而来的;)
  • 在描述中 - 如何在不合并到 master 的情况下检出分支

拉远程分支而不合并

# Assuming you are on wanted branch (b1) already

git pull --rebase
Run Code Online (Sandbox Code Playgroud)

merge,只是rebase

签出远程分支(来自原点)

git fetch 
git checkout b1
Run Code Online (Sandbox Code Playgroud)

没有合并到master,新分支b1被创建。


Cal*_*mah 12

您可以git fetch origin b1用来仅获取远程分支而不合并。

参见:https : //git-scm.com/docs/git-fetch

基本上git pullgit fetch && git merge

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


DRC*_*DRC 8

你想用

git checkout b1
Run Code Online (Sandbox Code Playgroud)

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

git checkout -b b1 origin/b1
Run Code Online (Sandbox Code Playgroud)

  • @Carole你首先需要执行 git fetch ,这会获取所有远程分支,你可以使用 gitbranch -a 看到它们,当执行 git checkout b1 时,你切换到 origin/b1 分支 (2认同)