草庐IT

rebasing

全部标签

git - 是否有某种 'git rebase --dry-run' 会提前通知我冲突?

我正在尝试编写rebase脚本,我的脚本将采用不同的路径,具体取决于rebase是否会导致任何冲突。有没有办法在执行rebase之前确定rebase是否会导致冲突? 最佳答案 在撰写本文时(Gitv2.6.1v2.10.0),gitrebase命令不提供--dry-run选项。在实际尝试rebase之前,无法知道您是否会遇到冲突。但是,如果您运行gitrebase并遇到冲突,该进程将停止并以非零状态退出。你可以做的是检查rebase操作的退出状态,如果它不是零,运行gitrebase--abort来取消rebase:gitrebas

Git 如何回滚 rebase

在Git中,如果您对rebase不满意,该如何回滚?Git没有rebase试运行。如果我做了一个rebase但还没有推送它,我该如何回滚到以前,就好像它从未发生过一样? 最佳答案 您可以使用reflog在rebase开始之前找到第一个Action,然后重置--hard回到它。例如$gitreflogb710729HEAD@{0}:rebase:somecommit5ad7c1cHEAD@{1}:rebase:anothercommitdeafcbfHEAD@{2}:checkout:movingfrommastertomy-bran

Git 如何回滚 rebase

在Git中,如果您对rebase不满意,该如何回滚?Git没有rebase试运行。如果我做了一个rebase但还没有推送它,我该如何回滚到以前,就好像它从未发生过一样? 最佳答案 您可以使用reflog在rebase开始之前找到第一个Action,然后重置--hard回到它。例如$gitreflogb710729HEAD@{0}:rebase:somecommit5ad7c1cHEAD@{1}:rebase:anothercommitdeafcbfHEAD@{2}:checkout:movingfrommastertomy-bran

git rebase 在之前的 git merge 之后

我有以下情况:我从主存储库(X)创建了一个clone(Y),因为有很多人在Y上工作,我们没有做任何rebase但只有merge。当我们想要交付(push)Y到X时,我们想做一个rebase以使事情变得干净整洁问题是在执行rebase时,我们被要求执行我们在前面的merge步骤中已经执行的所有merge。除了意味着实际重新进行merge的解决方案之外,是否有解决方案?我预计它会非常简单,因为我们已经解决了merge冲突。 最佳答案 gitmerge--squash现在是我在大量工作和许多merge之后首选的rebase方式(seeth

git rebase 在之前的 git merge 之后

我有以下情况:我从主存储库(X)创建了一个clone(Y),因为有很多人在Y上工作,我们没有做任何rebase但只有merge。当我们想要交付(push)Y到X时,我们想做一个rebase以使事情变得干净整洁问题是在执行rebase时,我们被要求执行我们在前面的merge步骤中已经执行的所有merge。除了意味着实际重新进行merge的解决方案之外,是否有解决方案?我预计它会非常简单,因为我们已经解决了merge冲突。 最佳答案 gitmerge--squash现在是我在大量工作和许多merge之后首选的rebase方式(seeth

git - git pull --rebase 和 git pull --ff-only 的区别

假设origin/master有提交A--B--C而我的local/master有提交A--B--D.如果我使用gitpull--rebase会发生什么?如果我使用gitpull--ff-only会发生什么?生成的提交树有什么不同吗? 最佳答案 WhatwillhappenifIusegitpull--rebase?gitpull--rebase大致等同于gitfetchgitrebaseorigin/master即您的远程更改(C)将在本地更改(D)之前应用,从而产生以下树A--B--C--DWhatwillhappenifIus

git - git pull --rebase 和 git pull --ff-only 的区别

假设origin/master有提交A--B--C而我的local/master有提交A--B--D.如果我使用gitpull--rebase会发生什么?如果我使用gitpull--ff-only会发生什么?生成的提交树有什么不同吗? 最佳答案 WhatwillhappenifIusegitpull--rebase?gitpull--rebase大致等同于gitfetchgitrebaseorigin/master即您的远程更改(C)将在本地更改(D)之前应用,从而产生以下树A--B--C--DWhatwillhappenifIus

Git Pull 与 Git Rebase

我是Git的菜鸟,正在尝试了解gitpull与gitrebase之间的区别。有人可以举例说明何时使用哪个选项吗,因为我觉得两者的目的相同。 最佳答案 gitpull和gitrebase不能互换,但它们紧密相连。gitpull从远程获取当前分支的最新更改,并将这些更改应用到分支的本地副本。通常这是通过merge完成的,即将本地更改merge到远程更改中。所以gitpull类似于gitfetch&gitmerge。Rebase是merge的替代方法。它不是创建一个merge两个分支的新提交,而是将其中一个分支的提交移动到另一个分支之上。

Git Pull 与 Git Rebase

我是Git的菜鸟,正在尝试了解gitpull与gitrebase之间的区别。有人可以举例说明何时使用哪个选项吗,因为我觉得两者的目的相同。 最佳答案 gitpull和gitrebase不能互换,但它们紧密相连。gitpull从远程获取当前分支的最新更改,并将这些更改应用到分支的本地副本。通常这是通过merge完成的,即将本地更改merge到远程更改中。所以gitpull类似于gitfetch&gitmerge。Rebase是merge的替代方法。它不是创建一个merge两个分支的新提交,而是将其中一个分支的提交移动到另一个分支之上。

git - 如何在不需要强制推送的情况下使用 git rebase?

为了实现gitnirvana,我花了一天时间学习如何在我当前merge的情况下利用rebase。当运行我认为是git101流程(我在下面详细说明)时,我必须push--force将我的更改推回原点。我不是唯一一个-我知道这是覆盖地面(参见1、2、3、4、5),我理解技术原因为什么需要一个力量。我的问题是这个---有很多(很多)博客条目歌颂rebase以及它如何改变他们的生活(参见1、2、3、4列出一些),但是他们都没有提到push--force是他们流程的一部分。然而,几乎所有对现有stackoverflow问题的回答都会说“是的,如果你要rebase,你必须使用push--force