如何在不必重新开始的情况下对git存储库进行重大更改?

如何在不必重新开始的情况下对git存储库进行重大更改?,git,version-control,repository,Git,Version Control,Repository,我的一个git存储库有问题(仅供参考:我对git真的很陌生) 基本上,我忘记了我为一个项目创建的repo,处理了错误的文件集(我的原始副本),做了一些大的更改,并重命名了大部分文件 现在我意识到我的错误了,我想知道如何将新文件放入我的repo,替换旧文件,这样我就不会以两个不同的名称得到相同文件的两个不同版本 我不想完全删除旧的回购协议,然后用新文件重新创建它,因为我已经把它推到github上了 有谁能提供一些帮助和/或建议吗 nb:不确定最好的“堆栈”站点是放在上面的,在这里计算还是编程 所以

我的一个git存储库有问题(仅供参考:我对git真的很陌生)

基本上,我忘记了我为一个项目创建的repo,处理了错误的文件集(我的原始副本),做了一些大的更改,并重命名了大部分文件

现在我意识到我的错误了,我想知道如何将新文件放入我的repo,替换旧文件,这样我就不会以两个不同的名称得到相同文件的两个不同版本

我不想完全删除旧的回购协议,然后用新文件重新创建它,因为我已经把它推到github上了

有谁能提供一些帮助和/或建议吗


nb:不确定最好的“堆栈”站点是放在上面的,在这里计算还是编程

所以您有一个存储库R和一个不同的工作目录W,您在其中工作时没有任何版本控制,对吗

基本上,在确保R中没有未限制的更改后,用W的内容替换R的签出:删除R的内容,除了.git目录和任何.git*文件之外,并将W的内容复制到其中,以便保持不变的文件位于其原来的位置


然后创建一个新的提交并将其推送到github

谢谢grawity-yeh,我不知道该把这个问题放在哪里。很高兴它被标记为移动,但如果需要的话?我可能会试试你的解决方案。我几天前才创建了回购协议,我是唯一的开发者,所以我怀疑其他人是否在使用它。感谢您使用
git mv
完成了所有重命名吗?如果它们都是被跟踪的更改,那么是什么阻止了您推动它呢?仅仅因为GET主要由程序员使用并不意味着它脱离了主题。这是git的一个使用问题,如果可以在这里回答,它可以留在这里,不过请注意,这样回答可能会更快。谢谢@Christopher,这可能是我应该(从现在开始)这样做的——也就是说,将所有旧文件重命名为“跟踪的更改”,然后将新文件复制到顶部,承诺和推动。谢谢@Ozan这就是我所做的,而且效果很好!我意识到我的问题最终可能有点无关紧要,但正如我所说的,我仍在学习正确使用git(以及一般的版本控制)。