在 git 重新定基
Rebasing in git
我有一个关于 git rebase
的问题。
我有我的主要分支 - 称之为 dev
。
我已经从 dev 创建了一个分支——称之为 myTest
。
我从 myTest
创建了另一个分支 - 称之为 myTest/myTestPart1
----------+------------------- dev
\
--------+-------- myTest
\
------- myTest/myTestPart1
当有人向dev
推送东西时,我会
git checkout dev
git pull
然后我做
git checkout myTest
git rebase dev
git push -f
然后我做
git checkout myTest/myTestPart1
git rebase myTest
git push -f
今天另一个开发人员和我一起工作,他说我需要做
git fetch origin
git rebase origin/dev
我做的和他对我说的有什么区别?
谢谢
如果你想确保你正在使用更新的分支,那么 fetch 命令是强制性的。如果没有这个,...你将重新定位到本地开发历史,这可能与你的有所不同。
来自 atlassian 文档:
In review, git fetch is a primary command used to download contents
from a remote repository. git fetch is used in conjunction with git
remote , git branch , git checkout , and git reset to update a local
repository to the state of a remote.
如果你变基到本地(而不是更新)开发者,你可能会丢失一些信息和一些同事的更新。
一个区别是他使用的句子以大写字母开头并以句号结尾,而你不用。 :)
他的意思是,您正在浪费大量的精力和时间以及 Internet 带宽。您不需要签出 dev
并拉取它以在其上进行变基。由于您不需要结帐 dev
,因此您不需要切换到 myTest
— 因为您已经在上面了。
将 myTest
变基到最新版本 dev
的方法是继续 mytest
并说
git fetch origin
git rebase origin/dev
你必须承认这比你正在做的要短得多。
我有一个关于 git rebase
的问题。
我有我的主要分支 - 称之为 dev
。
我已经从 dev 创建了一个分支——称之为 myTest
。
我从 myTest
创建了另一个分支 - 称之为 myTest/myTestPart1
----------+------------------- dev
\
--------+-------- myTest
\
------- myTest/myTestPart1
当有人向dev
推送东西时,我会
git checkout dev
git pull
然后我做
git checkout myTest
git rebase dev
git push -f
然后我做
git checkout myTest/myTestPart1
git rebase myTest
git push -f
今天另一个开发人员和我一起工作,他说我需要做
git fetch origin
git rebase origin/dev
我做的和他对我说的有什么区别?
谢谢
如果你想确保你正在使用更新的分支,那么 fetch 命令是强制性的。如果没有这个,...你将重新定位到本地开发历史,这可能与你的有所不同。
来自 atlassian 文档:
In review, git fetch is a primary command used to download contents from a remote repository. git fetch is used in conjunction with git remote , git branch , git checkout , and git reset to update a local repository to the state of a remote.
如果你变基到本地(而不是更新)开发者,你可能会丢失一些信息和一些同事的更新。
一个区别是他使用的句子以大写字母开头并以句号结尾,而你不用。 :)
他的意思是,您正在浪费大量的精力和时间以及 Internet 带宽。您不需要签出 dev
并拉取它以在其上进行变基。由于您不需要结帐 dev
,因此您不需要切换到 myTest
— 因为您已经在上面了。
将 myTest
变基到最新版本 dev
的方法是继续 mytest
并说
git fetch origin
git rebase origin/dev
你必须承认这比你正在做的要短得多。