如果你知道了,那在实际工作中就无敌了!git pull和git pull –rebase有什么区别?

首先

在现场有人在Git操作中,虽然了解pull,但对rebase是什么并不清楚。

在本文中,我将解释git pull和git pull -rebase之间的区别。

在哪种情况下使用了git pull -rebase命令?

当我被分配到现场开展工作时,我创建了一个基于develop分支的feature分支,并使用了git pull -rebase命令。

我从前辈那里获得了这样的建议。

在进行“pull”操作时进行开发

$ git fetch
$ git pull -rebase origin develop

我得到了使用和建议。

听说这是为了避免无谓的提交。

撰写这篇文章的动机

由于我不理解为什么要使用这个–rebase,所以我请前辈给我介绍了一篇文章,并在下面的参考资料中进行了调查。

我觉得有必要了解git fetch、pull、merge和rebase各自的区别。

前提知識

要理解git pull –rebase,必须要清楚理解fetch、merge和rebase这三个Git命令。

获取git

这是一个将远程环境的最新信息同步到本地环境的命令。

$ git fetch 

$ git fetch origin master  //リモートのmasterブランチからローカルのorigin/masterブランチへ反映

合并git

将当前分支的内容同步到其他分支或主分支(如master)的命令。
从origin/master同步最新信息到master分支。

$ git merge master //masterブランチの内容を今いるブランチにマージしたい時

git rebase可以用以下方式进行释义:

合并是一个命令,类似于“merge”,它可以将另一个分支的信息应用到当前所在的分支上。

image.png

参考来源:https://kray.jp/blog/git-pull-rebase/

Please note that this source is in Japanese and does not provide a Chinese version. Please let me know if you have any other requests.

然后,使用以下命令。

$ git rebase master  //今いるブランチを master にリベースしたい時

将位于另一个分支中的两个提交暂时保存,将另一个分支重新定位到重新基于的分支上。
使用git reset –hard(将分支与master分支的状态设置为相同)命令执行此操作。

将重置后的提交放入到另一个分支上的临时存储位置。

image.png

参考资料网址:https://kray.jp/blog/git-pull-rebase/

由于进行git rebase操作,因此会重新创建提交记录。
在重新创建之前,提交记录和父提交的id会发生更改,这样会将master分支的修改合并到另一个分支中。

image.png

请参考https://kray.jp/blog/git-pull-rebase/

git merge和rebase的区别

git merge指令会将当前分支合并到另一个分支中。
git rebase指令会将当前分支的内容应用到想要合并的分支之上。

拉取代码

这是一个同时进行git merge和git fetch的命令。
它可以将远程的master分支最新信息一次性同步到本地的master分支。

$ git fetch
$ git merge origin master

您可以批量应用此操作。

$ git pull origin master

请注意

我从前辈工程师那里听说,好像在现场即使不使用也会被看到。
原因是如果其他地方发生错误,似乎会将其他人的错误也一并带入。
(在我目前参与的现场中,我们通常使用拉取操作。)
基本上,反映错误状态更为罕见。

拉取代码并进行变基操作

–rebase在Git pull命令中是一种选项参数。
通过在git pull命令中添加–rebase选项,相当于执行git fetch + rebase操作。

$ git pull --rebase origin master

如果往上走

$ git pull --rebase origin develop

是的。

git pull和git pull –rebase的不同之处

从上级先辈那里听说,当在develop分支上进行分支切换时,最好使用–rebase选项来拉取更新,这样可以避免创建合并提交,同时不会留下多余的历史记录,使代码更加整洁。

$ git pull --rebase origin develop

根据参考资料来看

$ git pull --rebase origin master

我想要你们在完成后立即提交拉取请求。

image.png

引用自https://kray.jp/blog/git-pull-rebase/

请留意

–据说关于rebase的方法有很多争议(尽管这样可以使日志变得更整洁,但不应该修改历史记录)。
突然进行rebase可能违反团队的规定,因此可能会因团队或项目而异,所以最好向成员或领导等咨询。

请参考以下的资料。

 

bannerAds