首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更新从git中的本地存储库中获取的分支?

如何更新从git中的本地存储库中获取的分支?
EN

Stack Overflow用户
提问于 2014-08-21 12:35:19
回答 2查看 59关注 0票数 0

如果这是一个重复的问题,很抱歉。我是天生的新手,术语有点混乱。

我做了如下的事情。

我已经从名为master的远程分支中克隆了一个本地存储库(比如名为master的文件夹)。

由此,我使用git checkout master;git branch XYZgit-new-workdir命令创建了一个分支XYZ。

现在,我使用git pull更新了本地存储库(文件夹主版),以获取最近的更改。

我想将它传播到我的分支XYZ,它是从我的本地存储库中获取的。

我该怎么做?再次使用git pull

如果我尝试git pull,它会说“当前分支没有跟踪信息”。

那我该怎么办?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-21 13:05:34

你可能想把你的分支rebase到主人身上。

重基vs合并

让我们假设您的历史在拉过之后看起来是这样的:

代码语言:javascript
复制
      c---d---e <- Your branch
     /
a---b---f---g---h <- master (after the pull)

重设基地

使用rebase (文档)时,提交图如下所示:

代码语言:javascript
复制
                  c'---d'---e' <- Your branch
                 /
a---b---f---g---h <- master

您需要使用的命令是git rebase master <your-branch>,但请确保工作目录是干净的。如果您已经进行了未实现的更改,则应通过git stash保存它们。

合并

如果您使用merge (文档),它将是这样的,i是合并提交。

代码语言:javascript
复制
      c---d---e---i <- Your branch
     /           /
a---b---f---g---h <- master

重基的优势

mergerebase之间的区别是,merge将在您的分支中创建一个单独的提交,其中包含您从服务器中提取的所有更改。使用rebase,您可以将自己的提交放在拉出提交的顶部。

在进行重基时,您可以通过执行一个fast-forward merge来完成您的工作,这将导致一个清晰的线性历史,这将使它更加可读性。

代码语言:javascript
复制
a---b---f---g---h---c'---d'---e' <- Your branch, master

如果您之前合并了,而不是重新建立基础,这也是不可能的。

有关该主题的更多信息,您可以从Git分支-重基查看吉普书

票数 0
EN

Stack Overflow用户

发布于 2014-08-21 13:00:41

您试过使用git checkout XYZgit merge master将主服务器合并到XYZ中吗?

Git分支-基本分支和合并

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25426514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档