在 Gitkraken 中设置 Origin 和 Upstream

Setting Origin and Upstream in Gitkraken

我一直致力于 Mac 使用 Sourcetree 来管理我的存储库。我最近找到了一台 Ubuntu 机器来开发,并且发现 Sourcetree 不适用于 Ubuntu,发现 Gitkraken 作为一个潜在的替代品。

我的问题是,有什么方法可以在 Gitkraken 中为推送和拉取设置不同的远程存储库吗? (例如,使用顶部菜单栏上的按钮从 upstream/develop 推入 origin/develop 拉出)。如果那不可能,有没有办法跟踪与您 pushing/pulling 来自的分支不同的远程分支?

例如,Sourcetree 被设置为 local/develop 跟踪远程分支 upstream/develop,同时推送到远程分支 origin/develop。因此,如果人们对原始存储库进行了更改,它将显示在我的 Sourcetree 中,我将知道从 upstream/develop 拉到 local/develop。如果我做了任何更改,我可以在 origin/develop 推送我的叉子并在那里创建一个拉取请求以合并到 upstream/develop 如果更改被批准。

此外,在 Gitkraken 中,如果我右键单击 upstream/develop,则有一个 merge upstream/develop into develop 选项应该采用 upstream/develop 中的最新更改并将其合并到我的本地副本中? (如果我突然将本地开发合并到上游,上帝会帮助我)。

My question is, is there any way to set a different remote repository in Gitkraken for pushes and pulls?

AFAIK 没有这样的功能。右键单击分支时,可以select到Set Upstream。这导致消息 What remote/branch should "<branch>" push to an pull from?,这意味着一个分支只能通过 GitKraken 设置为从同一上游推送和拉取。

[...] is there a way to track a different remote branch from the one you are pushing/pulling from?

我不明白你在这里所说的 "track" 是什么意思,因为跟踪上游的分支意味着它正在使用它从 and/or 推送到。根据定义 here in section Tracking Branches,upstream 和 tracking branch 是同义词,所以我猜答案是否定的:

[...]what is called a “tracking branch” (or sometimes an “upstream branch”).

关于你最后一个问题,你可以冷静一下:

[...]if I right click upstream/develop there is an option to merge upstream/develop into develop that should take the most recent changes in upstream/develop and merge it into my local copy right?

这正是它的作用,就像 git merge upstream/develop 当您检查了本地 develop

我不知道最近多久才有可能,但在 GitKraken 6.0.0 版中,您可以 right-click 在原点上独立更改推拉路径。