Git:将远程分支合并到远程主站?

匿名者

我试图找出使用 Git 将远程分支 ( origin/develop)合并到我的远程主分支 ( origin/master)的标准方法我看过这个:

Git - 如何将远程分支合并到远程主节点

这表明我执行以下操作:

1)在我的本地develop分支上进行更改

2) 提交更改 develop

3)develop将本地合并到本地master

4)推送本地masterorigin/master

这是我的问题:我永远不需要将一个远程分支合并到另一个分支中吗?标准方法只是不断更新远程分支origin/develop来保存进度,最终将这些更改合并到本地master并推送到origin/master

我认为这会弄乱我的远程提交日志,因为我最终会删除我用来跟踪本地develop进度的远程分支......

谢谢!

周二

我永远不需要将一个远程分支合并到另一个分支中吗?

事实上,你不能那样做。嗯,你可以,有点,但是——好吧,这很令人困惑。让我们备份。:-)

Git 在这里有一些相当糟糕的术语。分支这个词有歧义。一旦你习惯了它的所有不同含义,它就不是一个糟糕的名字:有人说“在分支 X 上工作”或“结帐分支 Y”,我们都知道我们的意思,但要达到这一点很难。有关更多信息,请参阅“分支”究竟是什么意思?但从这里开始:Git 主要是关于commits 的分支名称稍后出现。

提交和分支名称

Git(和您)可以找到提交的最基本方法是通过其哈希 ID,它保证对于该特定提交是唯一的。但是,这些哈希标识似乎是随机的:26e47e261来之前8b026edac,但1f1cddd55谈到以后这类原因,比如(这些都是在Git仓库为实际的Git提交)。名称,如分支名称和远程跟踪名称,可以让 Git 和您找到提交。每个这样的名字准确地记住一个哈希ID。

几乎每一次提交都会记住一两个哈希 ID。这些是该提交提交。Git 可以将这些不同的散列 ID 串起来,从存储在名称中的散列 ID 开始,然后向后工作,将它们串成提交链:

A  <-B  <-C   <--master

namemaster记住commitC的hash ID,commitB的hash ID记住commit的hash ID,commit的hash ID记住commit的hash ID AA是第一个提交(在这个只有三个提交的小存储库中),因此它没有父级,因此结束了链。

添加新提交的过程包括写出新提交,使用当前分支链末端哈希 ID 作为其父项,然后将名称指向新提交:

A--B--C--D   <-- master

(不绘制内部箭头更容易,根据定义,它总是向后指向,并且——与分支名称不同——一旦创建就永远不会改变,所以我通常不绘制它们。)

远程跟踪名称

当您使用 Git 存储库时,您通常首先从某个其他现有 Git 存储库获取所有提交。其他Git是使用它的分支名称找到这些提交。你的 Git 收集这些提交,但你的 Git 会给你你的分支名称,独立于他们的。因此,您的 Git 需要一些其他名称(不是分支名称的名称)才能找到它们的提交。您克隆他们的存储库,并且您的 Git重命名master为您的origin/master远程跟踪名称远程跟踪分支名称,有些人称之为远程分支名称1

在创建 的初始克隆之后origin/*, agit fetch origin将调用相同的 URL(从您执行克隆时保存的)与同一个 Git 对话,从中收集它可能具有的任何新提交,并将所有远程跟踪名称更新为匹配他们的分支名称。因此,您的远程跟踪名称会自动跟随其分支名称。这是他们的主要目的:记住他们的分支名称正在记住哪些提交


1 “远程分支名称”可能是所有这些短语中最糟糕的,并不是说它们中的任何一个都很棒,因为 Git 使用远程一词来指代一个名称origin,您可以用它来识别其他Git 存储库。因此,如果您转到位于您的 下列出的 URL 上的 Git remote.origin.url,并询问它的分支,您将得到他们的 master他们的 develop等等。这些是遥控器上的分支名称:遥控器的分支名称。每个都必须是远程分支名称。但是它们不在您的Git 中,而是具有像origin/master这样的名称origin/develop我想调用origin/master一个远程跟踪名字是最好的,这些模棱两可的用语:这是你的名字为他们的( origin's) master


从另一个名称创建分支名称

最后一步git clone一般是git checkout master2您的Git不会一个master呢,所以你的Git巡游通过所有它(它只是让他们)远程跟踪的名字-origin/developorigin/master等,并找到他们的origin/master这指向某个特定的提交,因此您的 Git 现在创建您的master,指向相同的提交:

A--B--C--D   <-- master (HEAD), origin/master
          \
           E   <-- origin/develop

如果您现在运行git checkout develop,则会创建您自己的develop,指向与以下相同的提交origin/develop

A--B--C--D   <-- master, origin/master
          \
           E   <-- develop (HEAD), origin/develop

请注意,HEAD附加到您的分支名称之一——这就是当您进行新提交时 Git 知道您在哪个分支上的方式。

假设您master通过做git checkout master和做一些工作将自己的提交添加到自己的这将创建一个新的唯一哈希 ID 提交,并使您master指向这个新提交:

           F   <-- master (HEAD)
          /
A--B--C--D   <-- origin/master
          \
           E   <-- develop, origin/develop

这个特殊的例子没有使用git merge,它有自己的一套复杂性(我不想在这里详细介绍),但重点很简单:你总是自己的分支做所有工作完成这项工作后,您可以运行git push到:

  • 根据需要将提交发送到另一个 Git;然后
  • 让他们的 Git根据你刚刚发送的内容设置他们的分支名称。

因此,你现在可以git push origin master送你新的提交F给他们,并要求他们,使他们 master点提交F如果他们同意这一点,您的 Git 会记录此更新,以便您现在拥有:

           F   <-- master (HEAD), origin/master
          /
A--B--C--D
          \
           E   <-- develop, origin/develop

2您可以告诉您的 Git 使用另一个名称,如果您不这样做,另一个 Git 会告诉您的 Git 使用哪个名称,但通常是master.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Git:如何将本地分支合并到远程主分支

来自分类Dev

如何将远程tfs分支合并到git分支?

来自分类Dev

将远程主分支合并到本地分支(主分支除外)的方式

来自分类Dev

撤消git合并到远程分支

来自分类Dev

创建远程主站的分支

来自分类Dev

拉取而不是提取-意外将远程主服务器合并到本地分支中

来自分类Dev

从本地分支到远程主站的git request-pull

来自分类Dev

Git将主分支合并到其他分支

来自分类Dev

Git基本 - 将旧分支合并到主分支

来自分类Dev

合并到远程后,是否可以在Git中创建本地分支而不创建远程分支?

来自分类Dev

从远程主分支的git pull

来自分类Dev

Git将开发分支与主版本合并到生产版本

来自分类Dev

GIT将主合并到一个分支

来自分类Dev

恢复没有合并到主服务器的github删除的远程分支

来自分类Dev

恢复没有合并到主服务器的github删除的远程分支

来自分类Dev

Git:将代码推送到远程主分支

来自分类Dev

git将分支从另一个远程合并到我的分支后,没有为我的分支获取任何跟踪信息

来自分类Dev

如何将一个远程分支合并到另一个远程分支?

来自分类Dev

如何知道我的本地分支合并到哪个远程分支

来自分类Dev

如果已经将文件推送到远程分支,合并到开发分支并且不是最新提交,则如何从git中完全删除文件

来自分类Dev

如何强制git将“未更改”的分支更改合并到主分支

来自分类Dev

是否有任何 git 选项可以自动将主分支的提交合并到功能分支?

来自分类Dev

Git合并而无需远程分支

来自分类Dev

git与远程分支合并:已经是最新的

来自分类Dev

如果我git删除了具有尚未合并到其分支的远程分支,该怎么办

来自分类常见问题

将分支合并到主分支的最安全方法?

来自分类Dev

将分支合并到主分支的最安全方法?

来自分类Dev

如何将所有合并的远程git分支转换为标签?(创建标签,删除分支)

来自分类Dev

在 Android Studio 中使用 Git 将本地分支与远程分支合并

Related 相关文章

  1. 1

    Git:如何将本地分支合并到远程主分支

  2. 2

    如何将远程tfs分支合并到git分支?

  3. 3

    将远程主分支合并到本地分支(主分支除外)的方式

  4. 4

    撤消git合并到远程分支

  5. 5

    创建远程主站的分支

  6. 6

    拉取而不是提取-意外将远程主服务器合并到本地分支中

  7. 7

    从本地分支到远程主站的git request-pull

  8. 8

    Git将主分支合并到其他分支

  9. 9

    Git基本 - 将旧分支合并到主分支

  10. 10

    合并到远程后,是否可以在Git中创建本地分支而不创建远程分支?

  11. 11

    从远程主分支的git pull

  12. 12

    Git将开发分支与主版本合并到生产版本

  13. 13

    GIT将主合并到一个分支

  14. 14

    恢复没有合并到主服务器的github删除的远程分支

  15. 15

    恢复没有合并到主服务器的github删除的远程分支

  16. 16

    Git:将代码推送到远程主分支

  17. 17

    git将分支从另一个远程合并到我的分支后,没有为我的分支获取任何跟踪信息

  18. 18

    如何将一个远程分支合并到另一个远程分支?

  19. 19

    如何知道我的本地分支合并到哪个远程分支

  20. 20

    如果已经将文件推送到远程分支,合并到开发分支并且不是最新提交,则如何从git中完全删除文件

  21. 21

    如何强制git将“未更改”的分支更改合并到主分支

  22. 22

    是否有任何 git 选项可以自动将主分支的提交合并到功能分支?

  23. 23

    Git合并而无需远程分支

  24. 24

    git与远程分支合并:已经是最新的

  25. 25

    如果我git删除了具有尚未合并到其分支的远程分支,该怎么办

  26. 26

    将分支合并到主分支的最安全方法?

  27. 27

    将分支合并到主分支的最安全方法?

  28. 28

    如何将所有合并的远程git分支转换为标签?(创建标签,删除分支)

  29. 29

    在 Android Studio 中使用 Git 将本地分支与远程分支合并

热门标签

归档