我正在为一家公司做一个项目,嗯,我被引进来修复一个项目,结果只是完全改造了一切。这是唯一的方法,它是一款游戏,大部分代码都是用引擎的第一个版本制作的,不适合最新版本的引擎。所以我完全重新制作了它,但是当我删除所有内容并粘贴新来源时,它不会让我只是推动更改。
我也不是该存储库的主要拥有者,它是该公司的主要人物,在他的bitbucket帐户中拥有它。我确实有读/写访问权限。我会请他为我做一些事情,但尽管他是主要的人,他只是主要的艺术家,而不是超级技术。所以我希望能够独自完成这一切而无需让他完成任务。
我只是想彻底清除一个项目并粘贴到新的源代码中并将其发送进去,并取代主存储库中的旧代码。有没有办法用git做到这一点?
答案 0 :(得分:3)
这似乎相当激烈。但...
你需要一些东西(这没有经过测试 - 它旨在为你提供你所需要的东西)。我对你的环境做了很多假设
# get the current stuff
git pull origin master
# label the location you are about to nuke. Pick a name that suites you.
# while this is not strictly necessary, I'd highly recommend it
git checkout master
git branch release_0.9
git push origin release_0.9
# change to a new branch
git checkout -b release_1.0
# remove all the old files
ls | xargs rm -rf
# copy in your files here
# add all the new files
git add -A
# commit and push your branch
git commit
git push origin release_1.0
# update master
git push . HEAD:master
# push the new version of master
git push origin master
请不要盲目执行这些命令。首先理解并测试它们。
答案 1 :(得分:0)
保留原始文件,将其分支为您自己的 GitHub 目录,然后对其进行更改。最好建议将修订分解为更小的阶段......首先将尽可能多的新开发改造到遗留代码中,然后更改核心基础设施,并在之后进行任何您无法事先进行的剩余更改.但即使这样也应该分阶段进行,根据需要在第一阶段使用存根,以便在基础架构更改后添加新材料。
然后差异将更加清晰地分层,并且您将每个阶段(包括原始阶段)作为回归测试的基准......这应该是过程中每一步的重要组成部分。< /p>
永远不要抛弃旧的,要善于在 4 维而非 3 维中思考。项目不是当今世界的 3 维快照,而是包含其整个时空范围的 4 维链- 即它的整个历史。历史与快照一样重要,甚至更重要。将来,您或其他人可能最终会发现,原始做事方式的某些部分更好,需要回溯或重新整合,甚至单独分支。存档用于存储历史(即时空中的 4 维物体),而不是今天的事物。这种思维模式……在那些太年轻而无法在这个世界上生活足够长的时间来更好地了解的人中尤其普遍……被困在平面的 3D 当下世界中是一种时间形式近视被称为存在主义;并且应该避免 - 无论是为了创造性的努力还是在生活的其他领域。