"重新启动"存储库的方法

Ala*_*ano 18 git

我在我的项目中做了一个大的重构:我重命名了文件,删除,添加...此外,我在.gitignore中添加了一些文件夹.但是,我已经在重构之前提交了一个远程存储库.

有没有为我的存储库制作git"reinit"?如果没有,我该怎么办?

更新:

我删除了文件夹.git,现在我有一个错误

提示:更新被拒绝,因为当前分支的提示背后提示:它的远程对应物.合并远程更改(例如'git pull')提示:再次按下之前.提示:有关详细信息,请参阅'git push --help'中的'关于快进的说明'.

我不想将本地更改与远程仓库合并,我只想推送到那里,这意味着完全用本地仓库替换远程仓库.

小智 12

首先,通过此代码删除您的初始存储库

rm -rf .git
Run Code Online (Sandbox Code Playgroud)

然后创建一个新的存储库并放置我们用于初始 git 存储库的给定代码。我确信它会正常工作,不会出现任何错误..!!!

git init
git add README.md
git commit -m "first commit"
git branch -M main
Run Code Online (Sandbox Code Playgroud)


Kla*_*urn 8

UPDATE

如果你删除了.git文件夹(不是一个好主意),你可以创建一个新的repo克隆并将你的东西移动到那里,然后继续.像这样的东西

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
Run Code Online (Sandbox Code Playgroud)

然后继续如下.

请注意,最好还原.git文件夹.创建新的仓库将丢失您在原始本地仓库中拥有的所有本地仓库信息,例如从未推送的本地分支.

结束更新

你可以

git reset --soft HEAD^
git add -A .
git commit -m "rewriting history"
git push --force origin master
Run Code Online (Sandbox Code Playgroud)

这将备份到上一次提交(同时保留工作树和索引),提交更改,然后强制将重写的历史记录推送到远程.

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
Run Code Online (Sandbox Code Playgroud)


Kha*_*aen 8

以下是重新初始化存储库的步骤。

场景:我已经删除了我之前创建的 git init 的本地项目文件夹。之后,我想使用同一项目的新文件夹更新到现有的 git 存储库。然后我按照以下程序解决了它。

程序

git init
git add --all
git commit -am "re-init"
git remote add origin https://github.com/{yourgit}/{yourproject}.git
git push --force origin master
Run Code Online (Sandbox Code Playgroud)