【问题标题】:How to "pull" from a local branch into another one?如何从本地分支“拉”到另一个分支?
【发布时间】:2011-08-02 14:28:28
【问题描述】:

这听起来很简单,但我就是想不通。前段时间我做了一个实验性的分支,现在我想把 master 上发生的所有变化都拉进来。这都是本地的。我想从本地 master 拉到本地 my_branch,但我做不到。这似乎不起作用,告诉我 master 不是 git 存储库:

git pull master

【问题讨论】:

标签: git


【解决方案1】:

你必须告诉 git 从哪里拉取,在这种情况下是从当前目录/存储库:

git pull . master

但在本地工作时,通常只调用merge(内部调用merge):

git merge master

【讨论】:

  • 我喜欢git pull . master,因为我认为它也会检查是否有任何来自 origin 的新内容。这是真的吗?
  • @JosiahYoder no,pull . 专门告诉 Git 从位于 . 的存储库中提取(即当前目录/存储库)。 origin 只是“.git/config 文件中定义的任何存储库位置的简写(通常在克隆存储库时自动设置)
  • 哦!那么git pull . master 会从本地存储库中提取而不是从源中提取? (不从原点获取!?)那么git pull . mastergit merge master 有什么优势吗?
  • @JosiahYoder 是的,它会从本地存储库而不是原始存储库“拉”。没有进行提取(因为本地存储库中的所有内容都已经在这里!)。没有任何优势——两个命令的作用或多或少是一样的。如果你正在做快进,你可以使用push . origin/branch:branch(不是拉)来更新本地分支,而不用先检查它们。
  • 我赞美你。靠灰骷髅的力量!
【解决方案2】:

你正在寻找的是合并。

git merge master

使用pull,您可以从远程存储库中获取更改并将它们合并到当前分支中。

【讨论】:

    【解决方案3】:

    相当老的帖子,但它可能对刚接触 git 的人有所帮助。

    我会去的

    git rebase master
    
    • 更清晰的日志历史记录并且没有合并提交(如果操作正确)
    • 需要处理冲突,但没那么难。

    【讨论】:

    • 开发团队当然有很多方法来管理他们的分支流程。就我个人而言,我使用 git 已经 8 年了,而且我从来没有变基过。我总是使用合并,它总是满足我的需求。当然,使用 rebase,就像合并一样,可能会出现 git 无法自动决定“合并”两组更改的正确结果的情况。关于您提出的关于“更清洁”的提交历史的观点。就个人而言,我的偏好是保留所有提交历史记录,以防万一我需要做一些“提交考古”(经常发生!)
    • 我做了 git rebase master,做了一些更改,推送到 ogirin 分支,但因为无法快进而被拒绝。所以我不得不强制推送git push -f origin [branch],这是我不想要的。
    • 如第一条评论中所述,如何进行合并有利有弊。这取决于团队的规模、开发速度等。我现在也使用混合方法。在您的情况下,您应该首先拉动,因此步骤将是git checkout mastergit pull origin mastergit checkout bug-fix-branchgit rebase master(解决合并冲突)、git checkout mastergit merge master,最后是git push origin master
    • @user3441604 变基并不意味着您会丢失任何历史记录。只是提交将在单行中对齐,而不是难以阅读的平行行。 @Lukino 本地分支机构(请参阅OP)不需要您描述的这个过程。即便如此,您只需要:git pull --rebase origin master,然后是git push origin master。使用正确的配置,您只需 git pull && git push
    【解决方案4】:

    如果您正在寻找从另一个分支(例如从本地到大师)的全新拉动,您可以按照此操作。

    git commit -m "Initial Commit"
    git add .
    git pull --rebase git_url
    git push origin master
    

    【讨论】:

      猜你喜欢
      • 2016-11-07
      • 2011-07-15
      • 1970-01-01
      • 1970-01-01
      • 2022-11-15
      • 2019-03-08
      • 2019-12-02
      • 1970-01-01
      相关资源
      最近更新 更多