Git rebase、公共远程分支和备份正在进行的工作

Git rebase、公共远程分支和备份正在进行的工作,git,Git,我正在学习git rebase,如果只看本地存储库,我发现这个概念很容易理解,但在使用共享远程存储库时却很难理解 这里有两个例子来说明我的理解问题 情景1: 我将远程回购克隆到我的机器上。在我的机器上,我: 从master创建一个主题分支 对主题分支执行一系列提交 从我的主题分支将提交重定基址到主节点 将我的更改推到远程 情景2: 我将远程回购克隆到我的机器上。在我的机器上,我: 从master创建一个主题分支 对主题分支执行一系列提交 现在我必须回家过一天,但我不希望我的工作只靠我的机器来完成

我正在学习git rebase,如果只看本地存储库,我发现这个概念很容易理解,但在使用共享远程存储库时却很难理解

这里有两个例子来说明我的理解问题

情景1:

我将远程回购克隆到我的机器上。在我的机器上,我: 从master创建一个主题分支 对主题分支执行一系列提交 从我的主题分支将提交重定基址到主节点 将我的更改推到远程

情景2:

我将远程回购克隆到我的机器上。在我的机器上,我: 从master创建一个主题分支 对主题分支执行一系列提交 现在我必须回家过一天,但我不希望我的工作只靠我的机器来完成,以防机器出问题。所以我把我的主题分支推到远程。 第二天,我返回并重新设定我对师父的承诺 将我的更改推到远程

如果我理解正确,即使有多个用户一直在使用远程repo并推动更改,场景1也会一直正常工作,因为我没有弄乱远程上的任何现有提交,我只是简单地添加到它们中

在场景2中,我想将我正在进行的工作暂时存储在remote上,但这样做会引入一种可能性,即我的一个队友可能会将他们的一些工作从我的远程分支中删除,然后一旦我重新设置了基础,我可能会对他们的工作所依赖的承诺做一些事情

我对情景1和情景2的假设正确吗


有没有一种安全的方法可以使用rebase,在远程缓存我的更改,并且不用担心以后会因为队友决定使用我的远程分支而发生冲突?

在场景2中,您通常会推送自己命名空间下的分支:

git push -o origin topic:neonDion/topic
这样,在您的下一个本地rebase中,您将能够git-push-force该分支,而不用担心(太多)您的队友,他们不应该将工作建立在用户分支上


不过,这只是一种约定,建议提前就这些分支的策略进行沟通。

在场景2中,您通常会推动自己命名空间下的分支:

git push -o origin topic:neonDion/topic
这样,在您的下一个本地rebase中,您将能够git-push-force该分支,而不用担心(太多)您的队友,他们不应该将工作建立在用户分支上


然而,这只是一种惯例,提前就这些分支机构的政策进行沟通是可取的。

如果你使用类似于“推送到主控”的表达方式,每个人的大脑都会立即关闭,没有人能够回答
master
是一个分支,您通常会合并到其中。如果你想把东西推进去,它是
原点
,是一个遥控器。请告诉我们。:-)如果你使用一种类似于“推到主机上”的表达方式,每个人的大脑都会立即关闭,没有人能够回答
master
是一个分支,您通常会合并到其中。如果你想把东西推进去,它是
原点
,是一个遥控器。请告诉我们。:-)