gpt4 book ai didi

git - "reinit"存储库的路径

转载 作者:IT王子 更新时间:2023-10-29 01:27:45 25 4
gpt4 key购买 nike

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

有什么可以让 git “reinit” 用于我的存储库吗?如果没有,我该怎么办?

更新:

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

hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Merge the remote changes (e.g. 'git pull') hint: before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.

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

最佳答案

更新

如果您删除了 .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文件夹就更好了。创建新的 repo 协议(protocol)将丢失您在原始本地 repo 协议(protocol)中拥有的所有本地 repo 协议(protocol)信息,例如从未推送过的本地分支。

结束更新

你可以

git reset --soft HEAD^
git add -A .
git commit -m "rewriting history"
git push --force origin master

这将备份到之前的提交(同时保留工作树和索引),提交您的更改,然后强制将重写的历史推送到远程。

push --force 是危险的东西。它会打扰其他已经 pull 过的人,被认为是非常粗鲁的,但如果没有其他人开始处理它,那不是问题。

这是正在发生的事情:

--- 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

关于git - "reinit"存储库的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17357369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com