【问题标题】:git: different branch creation and merging techniquesgit:不同的分支创建和合并技术
【发布时间】:2014-02-07 13:51:01
【问题描述】:
git checkout -b some_branch master

是否等同于语句:

git checkout master
git branch some_branch
git checkout some_branch

如果不是,那有什么区别?

在合并方面:

git checkout master
git pull
git pull origin some_branch

是否和以下一样:

git checkout some_branch
git pull
git checkout master
git pull
git merge some_branch 

【问题讨论】:

    标签: git git-branch git-merge


    【解决方案1】:

    Q1。是的

    Q2。没有

    • 不,因为您的拉取顺序不同,并且遥控器可以在这两个事件之间更改。

    • 不,因为只有在配置中没有 branch.topic.remote 时,git pull 才等效于 git pull origin,当您在主题分支上时。

    • 不,因为pull.rebasebranch.topic.rebasebranch.autosetuprebase 配置条目可以使pull 重新基而不是合并。

    • 不,因为some_branch 将在两个场景结束时处于不同的状态。它将在第二种情况下更新(从源获取并合并) - 在git checkout some_branch && git pull 之后,但仅在第一种情况下在git pull origin some_branch 之后获取。

    【讨论】:

      【解决方案2】:

      关于结帐的第一个问题:是的,它们是等价的。唯一的区别是您键入的字符数。

      关于合并的第二个问题:与上述相同。

      我发现 Git 有两种基本的命令:Granular 和 Composite。

      粒度命令类似于git branch foo 用于创建分支。复合命令只是输入多个细粒度命令的一种更简单、更快捷的方式,例如git checkout -b foo master

      在我使用过的源代码控制系统中,Git 需要最多的输入,直到您了解命令集并利用它们内置的所有小捷径。

      【讨论】:

      • 关于OP的问题,他们是。问题基本上是,“我可以运行命令'A'而不是运行命令'B',答案是肯定的。
      • 查看@mockinterface 的答案。它解释了在执行一个命令而不是另一个命令时可能出错的一些事情。
      猜你喜欢
      • 2017-10-11
      • 1970-01-01
      • 2014-08-30
      • 2020-04-18
      • 1970-01-01
      • 2011-05-16
      • 2023-03-06
      • 2014-07-17
      • 2017-12-15
      相关资源
      最近更新 更多