2

我正在为一家公司做一个项目,好吧,我被请来修复一个项目,结果只是彻底改造了所有东西。这是唯一的方法,它是一个游戏,大部分代码是用引擎的第一个版本编写的,不适合最新版本的引擎。所以我已经完全重新制作了它,但是当我删除所有内容并粘贴新源时,它不会让我只推送更改。

我也不是存储库的主要所有者,它是公司的主要人员,他的 bitbucket 帐户中有它。我确实有读/写权限。我会请他为我做一些事情,但尽管他是主要人物,但他只是主要艺术家,而不是超级技术。因此,我希望能够自己完成这一切,而不必引导他完成。

我只想完全清除一个项目并粘贴新的源代码并将其发送进来,并用它来代替主存储库中的旧代码。有没有办法用 git 做到这一点?

4

2 回答 2

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

请不要盲目执行这些命令。首先了解并测试它们。

于 2012-07-20T05:26:24.843 回答
0

保持原样不变,将其分支为您自己的 GitHub 目录,然后对其进行更改。最好将修订分解为更小的阶段……首先尽可能多地将较新的开发改造到遗留代码中,然后更改核心基础架构并在之后进行任何您无法事先进行的剩余更改. 但即使这样也应该分阶段进行,根据需要在第一阶段使用存根,以便在基础设施更改后添加新材料。

然后差异将更加清晰地分层,并且您将呈现每个阶段(包括原始阶段)作为回归测试的基准......这应该是每一步过程的重要组成部分。

永远不要抛弃旧的,要善于在 4 维而不是 3 维中思考。项目不是当今世界的 3 维快照,而是包含其在时空中的整个范围的 4 维链 - 即它的整个历史。历史与快照一样重要,甚至更多。将来,您或其他人可能最终会发现原始做事方式的某些部分更好,需要回溯或重新整合,甚至单独分支。存档是为了存储历史(即时空中的 4 维物体),而不是现在的事物。这种思维模式……尤其是在那些还太年轻而无法在这个世界上待得足够长而无法更好地了解的人中……被困在扁平的 3-D 当下世界中是一种时间形式近视被称为存在主义;

于 2021-05-16T21:47:56.730 回答