所以我在存储库中做了一些工作,当我即将提交时,我意识到我目前不在任何分支上.
在使用子模块时,这种情况发生了很多,我能够解决它,但这个过程很繁琐,而且我一直在想必须有一个更简单的方法来做到这一点.
有没有一种简单的方法可以回到分支上,同时保持变化?
我有一个Git存储库(A),它包含项目的开发直到某一点.然后我丢失了这个回购A打开的USB记忆棒.幸运的是,我有一个最新提交的备份,所以我可以稍后创建一个新的存储库(B),我导入最新项目的状态并继续开发.现在我恢复了丢失的USB记忆棒,所以我有两个Git存储库.
我想我不得不以某种方式将回购B重新命名为回购A,但我不知道如何做到这一点,也许使用fetch/pull和rebase?
这是我所做的:
签出远程 git 存储库。
添加到以下[remote "origin]部分.git/config:
fetch = +refs/heads/release/BranchName:refs/remotes/origin/release/BranchName
git checkout origin/release/BranchName
之后git status报道:
HEAD 与 origin/release/BranchName 分离
添加并检查了一些修改。
试图git push。这导致了错误消息:
致命:您当前不在分支上。现在要推送导致当前(分离的 HEAD)状态的历史记录,请使用
Run Code Online (Sandbox Code Playgroud)git push origin HEAD:<name-of-remote-branch>
git push origin HEAD:origin/release/BranchName
并得到以下信息:
错误:无法推送到不合格的目的地:origin/release/BranchName 目的地 refspec 既不与远程上的现有 ref 匹配,也不以 refs/ 开头,我们无法根据源 ref 猜测前缀。错误:未能将一些引用推送到“RepositoryName”
因此,问题是:我做错了什么?如何解决这个问题并推动更改?
git status 说:
HEAD detached at e1997bd
Run Code Online (Sandbox Code Playgroud)
并git rev-parse HEAD说:
e1997bd
Run Code Online (Sandbox Code Playgroud)
这是什么意思?
我认为HEAD脱离意味着HEAD没有指向分支尖端.
这是我所有分支的列表:
$ git branch -a
* temp
remotes/heroku/master
remotes/origin/dev
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
当我键入 git checkout remotes/origin/master切换到我的原始master分支时,Git切换到分离的HEAD状态.为什么?
从Git手册中:
git checkout [--detach] <commit>准备在<commit>上工作,方法是将HEAD分离(请参见“ DETACHED HEAD”部分),并更新工作树中的索引和文件。保留了对工作树中文件的本地修改,因此生成的工作树将是提交中记录的状态加上本地修改。
似乎只有一种选择:HEAD已分离。我可以指定一个不让HEAD脱离的选项吗?
[升级1]我在“将Git存储库还原为先前的提交 ” 一文中的评论中提出了类似的问题
# To get just one, you could use `rebase -i` to squash them afterwards
# Or, you could do it manually (be sure to do this at top level of the repo)
# get your index and work tree into the desired state, without changing HEAD:
git checkout 0d1d7fc32 .
# Then commit. Be sure and write a good message describing what you just did
git commit …Run Code Online (Sandbox Code Playgroud) 我正在尝试切换另一个分支,但我一直呆在一个独立的头上或没有分支.
我尝试了什么:
开关/结帐:
获得:
但如果我想提交,我仍然没有分支:
如果我试图拉这个分支:
我越来越:
我仍然没有分支......
我怎样才能真正回到portalGraphs分支?
git ×8
branch ×1
git-checkout ×1
git-log ×1
github ×1
merge ×1
rebase ×1
repository ×1
tortoisegit ×1