我在我的项目中做了一个大的重构:我重命名了文件,删除,添加...此外,我在.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)
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)
以下是重新初始化存储库的步骤。
场景:我已经删除了我之前创建的 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)
| 归档时间: |
|
| 查看次数: |
31379 次 |
| 最近记录: |