UPDATE
如果你删除了文件夹.git
(不是一个好主意),你可以创建回购的新克隆和移动你的东西到,并继续在那里。像这样的东西
cd ..
git clone <remote-repo-url> new-repo
rm -rf new-repo/* // this will not remove new-repo/.git
cp -f <original-local-repo> new-repo
cd new-repo
然后继续如下。
请注意,如果您可以恢复.git
文件夹,则效果会更好。创建一个新的回购将松动您在原始本地回购中的所有本地回购信息,例如从未推入的本地分支。
结束时更新
是改写历史,您可以
git reset --soft HEAD^
git add -A .
git commit -m "rewriting history"
git push --force origin master
这将备份到先前的承诺(同时保持工作树和索引),提交更改,然后强制推到远程。
push --force
是危险的东西。它会打扰那些已经拉下来的人,并且被认为是非常粗鲁的,但是如果没有其他人开始工作,那不是问题。
这是正在发生的事情:
--- A -- B master
^
|
origin/master
git push
--- A -- B master, origin/master
git reset HEAD^
git commit -am "rewriting"
--- A -- B origin/master
\
\
B' master
git push --force
--- A -- B
\
\
B' master, origin/master
你想有一个干净的历史被 “重新发起”?你为什么不直接前进并提交新的更改? – Mingyu
@明宇,我只做了一次提交,所以有一个干净的存储库是个好主意。 –
远程回购的性质是什么?如果它没有任何活动克隆,请将其替换。 – tripleee