如果.git
文件夹中有些东西弄乱了并且无法修复,但是我想按原样保留工作文件夹,如何.git
从远程存储库中“重置” 文件夹?
.git
通过从远程重新初始化文件夹,可以使用以下过程“修复” 文件夹。此过程假定您当前的本地分支与远程分支在同一提交上。否则,您将丢失任何本地提交,但不会丢失本地更改。同样,任何被“忽略”的本地文件将保持不变。
此外,任何仅本地分支机构都将丢失。如果要保留这些分支,请先将其推入远程。您也可以在本地复制整个预先固定的工作文件夹,然后将其添加为“远程”,然后将这些分支拉入固定的副本(完成以下步骤之后)。
最好在启动之前备份整个本地工作文件夹树,以防发生意外问题。
确定您当前所在的分支:
git status
如果您有自定义钩子,请保存.git/hooks
文件夹
.git
从工作副本中删除(或移动)文件夹
在工作副本中重新初始化git repo:
git init
origin
手动添加您的遥控器:
git remote add origin *url*
获取远程存储库:
git fetch
在开始之前,重新创建工作副本所在的分支:
git checkout -b *branch*
将分支引用指向远程分支,而不影响工作副本:
git reset --mixed origin/*branch*
将所有保存的钩子复制到.git/hooks
文件夹中。
如有必要,请执行任何清理操作,例如还原文件等。
@MarkAdelsberger提供的使用git reset --mixed
而不是git reset --soft
plus git add .
的改进(请参见注释)。
改进了保存.git/hooks
@ gary-kindel提供的文件夹的功能(请参见注释)。