【问题标题】:Approaches to Working With Remote Branches in Git在 Git 中使用远程分支的方法
【发布时间】:2020-04-03 02:56:19
【问题描述】:

这是一个随机的git 问题。我正在研究查看@远程分支的所有方法。我觉得有三种方式......也许更多。

  1. git switch --create < local branch name > origin/< remote branch name >
  2. git checkout -b < local branch name > origin/< remote branch name >
  3. git checkout -t origin/< remote branch name >

两个问题:

  1. 这是在远程分支上工作的三种主要方式吗?
  2. 这些方法有什么好处,还是只是 TMTOWTDI(有不止一种方法可以做到)?

【问题讨论】:

  • 您可以在远程分支上工作,而无需创建本地分支。从技术上讲,你会在分离的 HEAD 上,但无论如何。

标签: git version-control branching-and-merging git-checkout


【解决方案1】:

从技术上讲,这些都不会导致您使用远程跟踪名称1,例如 origin/masterorigin/feature/short。他们只是创建一个(常规,即本地)分支名称,例如 masterfeature/short,将 origin/masterorigin/feature/short 设置为其上游

在这种情况下,它是一个庞大的 TMTOWTDI 集合,因为您也可以这样做:

git checkout feature/short

它将“DWIM”到git checkout -t origin/feature/short,和/或您可以使用git branch在您喜欢的任何开始提交处创建分支名称,然后使用git branch --set-upstream-to设置您创建的名称的上游.

一旦您使用git checkoutgit switch 在(本地)分支(名称)上,您所做的新提交将以通常的方式更新该名称。作为eftshift0 commented,您可以使用分离的 HEAD 来查看任何特定的提交,包括那些由远程跟踪名称标识的提交。


1我更喜欢这个术语,remote-tracking name,而不是官方的 Git 术语,remote-tracking branch name 等等。这些名称确实跟踪其他 Gits 的分支名称,因此“remote-tracking-branch-name”(都是一个大短语)是合适的,但将其缩短为“remote-tracking-branch”然后将其转换为“远程跟踪分支”,然后认为您可以使用其中一个,就像您可以使用(真实/本地)分支名称一样,但您不能。

(那个,可怜的词 branch 被打得远远超过了它的死亡点。我们已经对太多的词做了这个,比如 tree;我们可以kind,完全省略branch这个词,没有失去意义。)

【讨论】:

    猜你喜欢
    • 2012-10-22
    • 2012-03-17
    • 2013-01-07
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 2015-10-19
    相关资源
    最近更新 更多