Git 在Sourcetree中签出现有分支和签出新分支之间的差异

Git 在Sourcetree中签出现有分支和签出新分支之间的差异,git,atlassian-sourcetree,git-checkout,Git,Atlassian Sourcetree,Git Checkout,在sourcetree中,我只想签出远程开发分支,这样我就可以在那里启动一个新的功能分支。我目前在另一个功能分支中,我已经提交并推送了我的所有更改 但是,当我右键单击远程分支源代码/开发时,我得到以下结果: 不知什么原因,我找不到这里有什么不同。我不想在新工作中破坏回购协议,所以我非常小心。在GitKraken中,您只需签出到remote,并在必要时更新您的本地开发分支。我对GitKraken或Sourcetree不太了解,但一般来说,您不希望直接签出Git中的远程跟踪分支。也就是说,一般来说

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

但是,当我右键单击远程分支源代码/开发时,我得到以下结果:


不知什么原因,我找不到这里有什么不同。我不想在新工作中破坏回购协议,所以我非常小心。在GitKraken中,您只需签出到remote,并在必要时更新您的本地开发分支。

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

git checkout origin/develop
原因是跟踪分支(顾名思义)的存在主要是为了跟踪真正远程分支的状态。但是你所有的本地工作都应该进入一个新的本地分支机构


所以,回到你的Sourcetree问题和屏幕截图,我没有看到任何令人惊讶的地方。您的意思是希望基于跟踪分支
origin/develope
,创建一个新的本地分支
develope
。另外,您正在告诉Sourcetree/Git您希望此本地分支跟踪远程跟踪分支
origin/develope
我对Sourcetree不太熟悉,但通常您可以通过签出创建一个新分支(如果在命令窗口中向命令添加a-b),因此我认为签出新分支就是这样做的,而另一个允许您签出现有分支

它的作用是:

git checkout -b develop --track origin/develop
这将确保本地分支
develope
默认情况下将推送到远程分支
origin/develope

注意,对于Git2.23+,这将是

SourceTree尚未集成该新命令


我不想在新工作中破坏回购协议,所以我非常小心

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

git switch -c develop --track origin/develop