【问题标题】:Difference between checkout existing and checkout new branch in SourcetreeSourcetree中结帐现有分支和结帐新分支之间的区别
【发布时间】:2019-08-11 07:02:32
【问题描述】:

在 sourcetree 中,我只想签出远程开发分支,以便在那里启动一个新功能分支。我目前在另一个功能分支中,我已经提交并推送了我的所有更改。

但是,当我右键单击远程分支 origin/develop 我得到这个:

由于某种原因,我找不到这里有什么区别。我不想在我的新工作中破坏回购,所以我非常小心。在 GitKraken 中,您只需签出远程并在必要时更新您的本地开发分支。

【问题讨论】:

    标签: git atlassian-sourcetree git-checkout


    【解决方案1】:

    这是做什么的:

    git checkout -b develop --track origin/develop
    

    这将确保本地分支 develop 默认推送到远程分支 origin/develop

    请注意,对于 Git 2.23+,这将是 git switch

    git switch -c develop --track origin/develop
    

    SourceTree 尚未集成该新命令。


    我不想在我的新工作中破坏 repo,所以我非常小心

    这不会破坏任何东西:这只是本地操作。


    这与“Checkout existing”不同,后者只会列出现有的本地或远程分支,相当于:

    git switch <branch>
    

    【讨论】:

    • 这是对“'Checkout New Branch' 的作用”的一个很好的回答。您能否添加一两句话来解释这与“Checkout Existing”有何不同?
    • @DavidCary 当然。我已经相应地编辑了答案。
    【解决方案2】:

    我不太了解 GitKraken 或 Sourcetree,但一般来说,您不希望直接在 Git 中签出远程跟踪分支。也就是说,一般来说你不会想要这样做:

    git checkout origin/develop
    

    原因是跟踪分支,顾名思义,主要是为了跟踪真正的远程分支的状态。但是你所有的本地工作都应该放到某个新的本地分支中。

    所以,回到您的 Sourcetree 问题和屏幕截图,我认为这并没有什么令人惊讶的地方。您是说要基于跟踪分支origin/develop 创建一个新的本地分支develop。此外,您告诉 Sourcetree/Git 您希望此本地分支跟踪远程跟踪分支 origin/develop

    【讨论】:

      【解决方案3】:

      我对 sourcetree 不太熟悉,但通常你可以通过 checkout 创建一个新分支(如果你在命令窗口中的命令中添加 -b),所以我假设 checkout new 分支就是这样做的,而其他让您检查现有的分支

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-12
        • 2014-06-13
        • 1970-01-01
        • 2021-03-14
        • 2019-03-13
        相关资源
        最近更新 更多