Mik*_*nen 124 git msysgit git-rebase
I managed to create a little mess in my local git repository. I was trying to fix a broken commit by using the following instructions. Before running the "git commit --amend" (and after the git rebase --interactive) I decided that my changes were incorrect and so I executed "git reset HEAD --hard". Not a good idea, I tell you.
现在,交互式基础似乎被"卡住了".Git将当前分支显示为(| REBASE-m).我的存储库中的每个命令(cd ..,ls,git rebase ...)都会出现以下错误:
cat:.git/rebase-merge/head-name:没有这样的文件或目录
以下是git rebase --abort的样子:
$ git rebase --abort
cat: c:/_work/project/src/git/.git/rebase-merge/quiet: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/head-name: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/orig-head: No such file or directory
HEAD is now at 4c737fb Revert "Modified file names"
rm: cannot remove `c:/_work/project/src/git/.git/rebase-merge/done': Permission denied
rm: cannot remove directory `c:/_work/project/src/git/.git/rebase-merge': Directory
not empty
cat: .git/rebase-merge/head-name: No such file or directory
Run Code Online (Sandbox Code Playgroud)
这是git rebase的结果 - 继续:
$ git rebase --continue
cat: c:/_work/project/src/git/.git/rebase-merge/prev_head: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/end: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/msgnum: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/onto: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/quiet: No such file or directory
prev_head must be defined
cat: .git/rebase-merge/head-name: No such file or directory
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我希望将情况重新恢复到我开始我精心设计的rebase操作之前的状态.
以下是git log --oneline如何显示情况:
4c737fb Revert "Modified file names"
247ac02 Modified file names
33141e6 Message modifications
10a4a04 Modified db script
Run Code Online (Sandbox Code Playgroud)
这很好.
我正在使用msysgit v1.7.0.2.
Mar*_*wen 118
看起来Git试图删除.git/rebase-merge
目录,但无法完全删除它.您是否尝试过复制该文件夹?.git/rebase-apply
如果存在,还要复制文件夹.
小智 91
我陷入了困境。我创建了名字文件,然后遇到另一个错误,说找不到文件,因此我创建了该文件。然后我又收到另一个错误消息,提示无法读取“ .git / rebase-apply / onto”:没有这样的文件或目录。
因此,我查看了git 文档进行基础调整,发现了另一个名为的命令git rebase --quit
。这使我回到了分支,没有任何变化,我可以重新开始重新配置,就像新的一样。
Rut*_*uth 18
感谢@Laura Slocum的回答
我在重新定基础时搞砸了,并得到了一个带有
error: could not read orig-head
Run Code Online (Sandbox Code Playgroud)
这使我无法完成变基。
分离的HEAD似乎恰好包含我正确的重新设定所需的状态,所以我跑了
rebase --quit
Run Code Online (Sandbox Code Playgroud)
然后,我签出了一个新的临时分支,将其绑定到分离的头上。
通过将其与要重新设置基准的分支进行比较,可以看到新的temp分支恰好处于我想要达到的状态。谢谢
在Windows上,如果您不愿意或无法重新启动计算机,请参阅下文.
安装Process Explorer:https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
在Process Explorer中,查找>文件句柄或DLL ...
输入错误中提到的文件名(对于我的错误,它是'git-rebase-todo',但在上面的问题中,'完成').
Process Explorer将突出显示锁定文件的进程(对我而言,它是'grep').
杀死进程,您将能够以标准方式中止git操作.
就我而言,八个git rebase --abort
并git rebase --continue
正在抛出:
错误:无法读取“.git/rebase-apply/head-name”:没有这样的文件或目录
我设法通过手动删除:.git\rebase-apply
目录来解决此问题。
小智 5
创建一个具有以下名称的文件:
touch .git/rebase-merge/head-name
Run Code Online (Sandbox Code Playgroud)
比使用 git rebase
归档时间: |
|
查看次数: |
65600 次 |
最近记录: |