如何通过完全替换来推动提交?

时间:2019-07-14 16:04:04

标签: git

我开始使用项目的全新版本。我在IDE中创建了一个新项目,做了git init,然后添加了遥控器。但是,现在我想在不破坏当前历史记录的情况下提交此命令,因此git push --force不是一个选择。是否可以仅通过推送新的提交来替换远程上的旧项目?

1 个答案:

答案 0 :(得分:0)

听起来像您想将存储库拉入一个干净的文件夹,删除所有内容并添加新代码:

git clone <your_remote> <optional directory name>
cd <cloned dir>
git rm -r *
cp -r /path/to/new/code/* .
git add .
git commit -m"Redid everything!"
git push

如果确定一切正常,则可以删除新代码的副本。 我认为一个更好的主意,如果您想将两个修订都放在同一位置,则从初始提交分支(在您将CD克隆到克隆目录之后):

git checkout <first empty commit>
git checkout -B my_redo_version

然后从cp行继续。这样做的好处还在于,您可以使用init创建的现有文件夹-只需存放代码,拉出master分支,签出第一次提交,分支并弹出即可。