Git自动重设基础问题

Git自动重设基础问题,git,github,Git,Github,我们是没有受过教育的git用户,通常使用一个主分支通过GitHub同步许多文件,并进行合并,因为我们在执行过程中几乎没有重叠 在极少数情况下,我们会随机得到一个不知从何而来的重基分支。这是最近发生的事 我们试图通过执行git-rebase--continue将其与主分支合并,但没有冲突。然后执行一个git checkout master,我们想用一个git merge RANDOM REBASE,但这一切似乎都消失了,我们丢失了关于这个奇怪的RANDOM REBASE分支的重要提交数据 我们怎样

我们是没有受过教育的git用户,通常使用一个主分支通过GitHub同步许多文件,并进行合并,因为我们在执行过程中几乎没有重叠

在极少数情况下,我们会随机得到一个不知从何而来的重基分支。这是最近发生的事

我们试图通过执行
git-rebase--continue
将其与主分支合并,但没有冲突。然后执行一个
git checkout master
,我们想用一个
git merge RANDOM REBASE
,但这一切似乎都消失了,我们丢失了关于这个奇怪的RANDOM REBASE分支的重要提交数据

我们怎样才能找回它


使用github for windows时,它显示为另一个分支,名称如下(fj%74(REBASE)

如图所示:

它不是一个分支,而是一个git bash提示符,说明:

  • 目前正在进行重新设定基准
  • 您需要继续并完成重新基准(或取消)
如上所述:

如果您真的不知道在重新基址期间做了什么,那么最好从一个
git-rebase--abort开始

或者看看“”:在
git reflog
git reset--hard ORIG_HEAD
之间,您可以返回到重新基线之前的已知状态


使用github for windows时,它显示为另一个分支,名称如下(fj%74(REBASE)

如图所示:

它不是一个分支,而是一个git bash提示符,说明:

  • 目前正在进行重新设定基准
  • 您需要继续并完成重新基准(或取消)
如上所述:

如果您真的不知道在重新基址期间做了什么,那么最好从一个
git-rebase--abort开始


或者看看“:在
git reflog
git reset--hard ORIG_HEAD
之间,您可以返回到重新基址之前的已知状态。

如果您确实想合并分支,您应该执行
git merge
。命令
git rebase--continue
不会形成合并。相反,它会继续已经启动的重新基址与合并非常不同的操作。此外,如果您执行此命令,这意味着您以前必须执行过
git-rebase
。分支不只是从任何地方出现。它们是在执行命令时创建的,通常是
git-branch
git-checkout-b
。如果您确实需要使用
git-rebas如果你真的想合并分支,你应该做
git merge
git rebase--continue
命令不会形成合并。相反,它会继续一个已经开始的、非常不同的rebase操作此外,如果您执行此命令,则意味着您以前必须执行过
git-rebase
。分支不只是从任何地方出现。它们是在执行命令时创建的,通常是
git-branch
git-checkout-b
。如果您确实需要使用
git-rebase
,您应该阅读更多的ab了解它的工作原理。这是一本免费的在线书籍,其中有一个很好的章节。

当您使用Github for Windows应用程序时,我试图用一些对git命令不熟悉的人应该容易理解的术语来写这个答案

在Github for Windows中,Sync按钮实际上执行了许多git命令,如前所述。如果一直使用Sync按钮,则以下情况可能导致新的分支和奇怪的合并提交:

  • 人员A已编辑文件xyz
  • 人员A将xyz提交并同步到主机
  • 人员B在不进行首次同步的情况下编辑文件xyz(即,B正在编辑旧版本的xyz)
  • 人员B提交并尝试同步xyz
  • Github for Windows尝试自动处理这种情况
  • 这可能导致从a和B的更改的公共起始点创建一个新分支,B在这个新分支上提交,a在主分支上提交
  • 然后,此新分支将在主服务器上自动重新设置基础或合并(取决于冲突等)
不幸的是,Github for Windows偶尔会把rebase搞砸。然后,您会在GUI中收到一条错误消息,需要在Git shell中了解情况。如果是这样,通常我发现唯一的解决方法是使用
Git rebase--abort
,中止rebase,从GUI中撤消B的提交(如果可能的话),并将B的工作区还原到包含A的提交的主分支。然后B可以在包含A的更改的文件上重新应用她的更改


Github for Windows的Simple Person工作流通常应为“同步、更改、提交、同步”,以便您在编辑任何内容之前获得所有以前的更改。在shell中使用实际的git命令仍然是首选选项。

当您使用Github for Windows应用程序时,我试图用一些对git命令不熟悉的人容易理解的术语来编写此答案

在Github for Windows中,Sync按钮实际上执行了许多git命令,如前所述。如果一直使用Sync按钮,则以下情况可能导致新的分支和奇怪的合并提交:

  • 人员A已编辑文件xyz
  • 人员A将xyz提交并同步到主机
  • 人员B在不进行首次同步的情况下编辑文件xyz(即,B正在编辑旧版本的xyz)
  • 人员B提交并尝试同步xyz
  • Github for Windows尝试自动处理这种情况
  • 这可能导致从a和B的更改的公共起始点创建一个新分支,B在这个新分支上提交,a在主分支上提交
  • 然后,此新分支将在主服务器上自动重新设置基础或合并(取决于冲突等)
不幸的是,有时候Gitfo
C:\Users\w\Documents\GitHub\CmisSync [(6026d18...)|REBASE +0 ~1 -0 !1 | +0 ~0 -0 !1]> git status
# Not currently on any branch.
# You are currently rebasing.