`git-rebase-i master`与`git-rebase-i origin/master`之间的差异`

`git-rebase-i master`与`git-rebase-i origin/master`之间的差异`,git,Git,根据我的理解,如果我使用git-rebase-I-master,那么以后我仍然需要git-push-origin-master上传更改 问题>在rebase-i master和rebase-i origin/master之间有什么区别 谢谢你意味着如果你有一个V2和一个V3(分别是版本2和版本3),你可以修改V2,并使用重新基址它将把更改放在一个新版本(V4)中,但与V3合并(这并不重要,它是一个较新的版本)这里是一个链接,你可以看到更多的解释 意味着如果你有一个V2和一个V3(分别是版本2和版

根据我的理解,如果我使用
git-rebase-I-master
,那么以后我仍然需要
git-push-origin-master
上传更改

问题>在
rebase-i master
rebase-i origin/master
之间有什么区别


谢谢你

意味着如果你有一个V2和一个V3(分别是版本2和版本3),你可以修改V2,并使用
重新基址
它将把更改放在一个新版本(V4)中,但与V3合并(这并不重要,它是一个较新的版本)这里是一个链接,你可以看到更多的解释


意味着如果你有一个V2和一个V3(分别是版本2和版本3),你可以修改V2,并使用
重新设置基址
它将把更改放在一个新的版本(V4)中,但与V3合并(这并不重要,它是一个较新的版本)这里是一个链接,你可以看到更多的解释


请注意,如果您在分支X上并且执行了git rebase-i master,它会更改分支X,而不是master,因此您必须推送分支X


无论如何,如果
origin/master
指向与
master
相同的提交(即您的
master
分支是最新的),那么您是否重新设置一个分支的基础并不重要。如果它们指向不同的提交,那么您将在您选择的分支指向的任何提交上重定基址。

请注意,如果您在分支X上,并且执行了git rebase-i master,它将更改分支X,而不是master,因此您必须推送分支X


无论如何,如果
origin/master
指向与
master
相同的提交(即您的
master
分支是最新的),那么您是否重新设置一个分支的基础并不重要。如果它们指向不同的提交,则您将重新基于您选择的分支指向的任何提交。

在继续之前,请运行:

git rev-parse master
以及:

您将看到两个SHA-1。如果这两个SHA-1值相同,则两个rebase命令将执行相同的操作。如果没有,他们会做不同的事情

如何使用
参数 git rebase的
参数有两个用途:

  • 它选择要重定基准的提交,并
  • 在缺少
    参数的情况下,它会选择樱桃拾取序列的起点
(请记住,这里的语法是
git-rebase[options][[]]
so
master
origin/master
在您的示例中提供了一个
。您必须使用
--on
选项来提供一个
,但您没有这样做,所以
提供了它。)

要查看选择了哪些提交,可以使用
git rev list
(或其更详细的等价物,
git log
)。为重定基址选择的实际提交是包含在当前分支中但不包含在
中的提交。即:

git rev-list master..HEAD
或:

分别。(将
rev list
替换为
log
以查看详细信息,或将
log--oneline
替换为一行描述。)

瑞贝斯做什么
rebase
命令的工作方式是复制提交,然后将分支名称设置为指向新的、提示最多的副本

如果使用交互式版本,它会将提交ID和指令放入一个可编辑的文件中。否则,它将按照顺序遍历上述
git rev list
命令中的所有提交ID

在开始樱桃拾取序列之前,
rebase
提交处分离
HEAD
。也就是说,
提交是拷贝的起点

然后,对于每个提交ID,
rebase
基本上运行
git-cherry-pick
(如果您使用的是交互式版本,则它实际上使用的是
git-cherry-pick
,并根据您的指令编辑进行了一些修改)。这会将原始提交复制到新分支尖端的新提交。在复制每个提交时,新分支将增长以包含所有提交

最后,复制所有提交后,
git-rebase
会更改最初的当前分支名称,以便它指向新分支上的新提示most-commit


请注意,在这个过程中,git并不关心单词
origin
是否出现在
中。它只是将
参数解析为它的SHA-1,然后使用它运行。

在我们继续之前,运行:

git rev-parse master
以及:

您将看到两个SHA-1。如果这两个SHA-1值相同,则两个rebase命令将执行相同的操作。如果没有,他们会做不同的事情

如何使用
参数 git rebase的
参数有两个用途:

  • 它选择要重定基准的提交,并
  • 在缺少
    参数的情况下,它会选择樱桃拾取序列的起点
(请记住,这里的语法是
git-rebase[options][[]]
so
master
origin/master
在您的示例中提供了一个
。您必须使用
--on
选项来提供一个
,但您没有这样做,所以
提供了它。)

要查看选择了哪些提交,可以使用
git rev list
(或其更详细的等价物,
git log
)。为重定基址选择的实际提交是包含在当前分支中但不包含在
中的提交。即:

git rev-list master..HEAD
或:

分别。(将
rev list
替换为
log
以查看详细信息,或将
log--oneline
替换为一行描述。)

瑞贝斯做什么
rebase
命令通过复制提交,然后设置