我今天最终得到了一个独立的头,同样的问题如下所述:git push说一切都是最新的,即使我有本地更改
据我所知,我没有做任何与众不同的事情,只是从我当地的回购中提交和推送.
那我怎么最终得到一个detached HEAD?
我尝试为此寻找一个特殊的git命令,但找不到一个.任何人都可以提出更短或更快的建议:
git branch | awk '/\*/ { print $2; }'
Run Code Online (Sandbox Code Playgroud) 使用git我做了这样的事情
git clone
git checkout {a rev number tree rev before} (here I started to be in a detached head state)
//hacking
git commit
//hacking
git commit
(some commit where made on origin/master)
git pull (which does complete because there was some error due to the fact that I'm no more on master)
Run Code Online (Sandbox Code Playgroud)
因为它告诉我,当我处于一个独立的头状态时,我仍然可以犯下这样做.但现在我想要合并我的分离头分支和我的本地主分支,然后将我的一堆更改推送到origin/master.
所以我的问题是如何将主分支与我的实际状态合并(分离头)
在我的git存储库中,我做了5次提交,如下面的git日志:
commit 4f8b120cdafecc5144d7cdae472c36ec80315fdc
Author: Michael
Date: Fri Feb 4 15:26:38 2011 -0800
commit b688d46f55db1bc304f7f689a065331fc1715079
Author: Michael
Date: Mon Jan 31 10:37:42 2011 -0800
commit b364f9dcec3b0d52666c4f03eb5f6efb7e1e7bda
Author: Michael
Date: Wed Jan 26 13:33:17 2011 -0800
commit 4771e26619b9acba3f059b491c6c6d70115e696c
Author: Michael
Date: Wed Jan 26 11:16:51 2011 -0800
commit 6e559cb951b9bfa14243b925c1972a1bd2586d59
Author: Michael
Date: Fri Jan 21 11:42:27 2011 -0800
Run Code Online (Sandbox Code Playgroud)
如何在分支机构本地回滚我之前的4个提交?换句话说,如何在没有最新的4次提交的情况下创建分支(假设我从git log获得了该提交的SHA)?
在git中,我试图squash commit通过合并另一个分支然后HEAD通过以下方式重置到上一个位置:
git reset origin/master
Run Code Online (Sandbox Code Playgroud)
但我需要走出这一步.如何将HEAD移回上一个位置?
我有23b6772提交的SHA1 frag(),我需要将其移动到.
我怎样才能回到这个提交?
这就是发生的事情:
我有一个分支A.在分支AI上提交了一系列更改.我对代码不满意,所以我检查了分支A中的先前提交.然后我做了一些更改并在分支A上提交它们.现在我无法在任何地方找到此提交.我丢失了这段代码吗?
好.所以我以为我有这个舔...但现在....
我有一个项目,其中包括一个来自GitHub的小型库作为子模块.在该超级项目的原始版本中,子模块按预期工作.
但是,我只是克隆了超级项目,做了我认为应该做的事情:"git submodule init",得到子模块的目录,但它是空的.
如果我现在尝试做
git submodule update
Run Code Online (Sandbox Code Playgroud)
我明白了
fatal: Needed a single revision
Unable to find current revision in submodule path 'external_libraries/BEACHhtml'
Run Code Online (Sandbox Code Playgroud)
如果我试试
git submodule foreach git pull
Run Code Online (Sandbox Code Playgroud)
我明白了
Entering 'external_libraries/BEACHhtml'
fatal: Where do you want to fetch from today?
Stopping at 'external_libraries/BEACHhtml'; script returned non-zero status.
Run Code Online (Sandbox Code Playgroud)
在我的.git/config中,我有这个:
[submodule "external_libraries/BEACHhtml"]
url = git@github.com:interstar/BEACHhtml.git
Run Code Online (Sandbox Code Playgroud)
在我的.gitmodules中我有这个:
[submodule "external_libraries/BEACHhtml"]
path = external_libraries/BEACHhtml
url = git@github.com:interstar/BEACHhtml.git
Run Code Online (Sandbox Code Playgroud)
任何人都知道缺少什么?
请问,我的项目有一个大问题:这就是场景.我在GIT下有一个xcode项目.今天我意识到最后一次提交破坏了一些测试,所以我检查了之前的提交.我使用了SourceTree,这是警告
这样做会使您的工作副本成为"分离的HEAD",这意味着您将不再在分支机构上.如果您想在此之后提交,则可能需要再次签出分支,或者创建新分支.这个可以吗?
我工作了一整天,最后我做了一切.所以我需要将我的工作合并到开发分支上,这样我就可以查看开发分支......我的工作立即消失了:(
我知道分离我的HEAD是错误的,Sourcetree警告我......但是有一种方法可以恢复我的工作吗?
非常感谢.
我有一个非常简单的Git项目,只有一个Master分支而且没有起源.
在我的项目的某个地方,我不小心在我的项目中创建了一个独立的HEAD,然后在分离的一堆提交后HEAD,尝试将它合并回我的Master分支.我在SourceTree中这样做,起初合并似乎工作(图表显示主人进入头部,并且我修复了合并冲突),但后来我双击Master切换到那个分支然后突然我HEAD消失了.我无法在所有分支下的SourceTree中找到它,git branch并且git log在命令行上也只显示我的主分支.
反正有没有从我失去的超脱中取回我的承诺HEAD?
我正在git的一个分支上工作.当我做
git checkout <commit id>
Run Code Online (Sandbox Code Playgroud)
(从中git log获取提交的id ),它将被提交到该特定更改但分支更改为<No-branch>.
为什么会这样?你是如何解决这个问题的?
git ×10
git-checkout ×2
branch ×1
git-branch ×1
git-reflog ×1
git-reset ×1
git-revert ×1
merge ×1