摆脱几个错误的提交
Get rid of several bad commits
我有一个我不跟踪 .gitignore
的回购协议,有人提交了 node_modules
文件夹,后来我们决定取消跟踪它。现在同一个人(git 的新手)提交了 '.gitignore' 几次提交,然后再次取消跟踪。现在我们遇到的情况是,如果我们检查旧的提交,它会从 repo 中删除几个未跟踪的文件,并且还会造成 'vs code' 由于数千个未跟踪的文件而变慢的情况。处理这种情况的最佳方法是什么?我想我需要压缩这些提交并将它们保存在单独的分支上,这样就不会有人不小心检查出来了。我还有其他选择吗?
随着事情的发生,
.gitignore was never tracked
node_modules were tracked
.gitignore was tracked
node_modules was untracked
.gitingore was untracked
您在 master
顶部描述的内容已修复,问题只是有人检查了旧版本的代码,其中的内容已损坏。
没有简单的方法来修复它。为此,您需要重写整个历史记录,并确保存储库的所有副本都使用新的历史记录进行了更新。这是组织的噩梦,您将永远错过一个将被推回主存储库的回购协议,然后您将回到初始状态。所以不要尝试。
唯一合理的解决方案是解决有人检出旧版本代码的情况。如果这是某个分支,例如:release-1.x.x
那么只需挑选一个提交即可将此问题修复到该分支。
如果开发人员必须检查特定代码 version/commit,只要此版本的代码需要一些维护,他们就不得不忍受这个问题。
重要的是要从这类问题中吸取教训:
- 仅当您启动新项目时,始终创建并签入
.gitignore
存储库。
- git hooks 有点难配置,但它是保护 repo 免受意外损坏的好解决方案
- 请注意,有工具 github/gitlab/bitbucket/... 允许您配置拉取请求和配置 git 挂钩以保护特定分支。通过拉取请求代码审查是保护您免受意外(
.gitignore
和 git 钩子未涵盖)不良更改的好方法
- 当实习生加入项目时,确保他的 git 技能至少是基本的,并且他了解存储库应该跟踪什么以及不应该跟踪什么。
我有一个我不跟踪 .gitignore
的回购协议,有人提交了 node_modules
文件夹,后来我们决定取消跟踪它。现在同一个人(git 的新手)提交了 '.gitignore' 几次提交,然后再次取消跟踪。现在我们遇到的情况是,如果我们检查旧的提交,它会从 repo 中删除几个未跟踪的文件,并且还会造成 'vs code' 由于数千个未跟踪的文件而变慢的情况。处理这种情况的最佳方法是什么?我想我需要压缩这些提交并将它们保存在单独的分支上,这样就不会有人不小心检查出来了。我还有其他选择吗?
随着事情的发生,
.gitignore was never tracked
node_modules were tracked
.gitignore was tracked
node_modules was untracked
.gitingore was untracked
您在 master
顶部描述的内容已修复,问题只是有人检查了旧版本的代码,其中的内容已损坏。
没有简单的方法来修复它。为此,您需要重写整个历史记录,并确保存储库的所有副本都使用新的历史记录进行了更新。这是组织的噩梦,您将永远错过一个将被推回主存储库的回购协议,然后您将回到初始状态。所以不要尝试。
唯一合理的解决方案是解决有人检出旧版本代码的情况。如果这是某个分支,例如:release-1.x.x
那么只需挑选一个提交即可将此问题修复到该分支。
如果开发人员必须检查特定代码 version/commit,只要此版本的代码需要一些维护,他们就不得不忍受这个问题。
重要的是要从这类问题中吸取教训:
- 仅当您启动新项目时,始终创建并签入
.gitignore
存储库。 - git hooks 有点难配置,但它是保护 repo 免受意外损坏的好解决方案
- 请注意,有工具 github/gitlab/bitbucket/... 允许您配置拉取请求和配置 git 挂钩以保护特定分支。通过拉取请求代码审查是保护您免受意外(
.gitignore
和 git 钩子未涵盖)不良更改的好方法
- 请注意,有工具 github/gitlab/bitbucket/... 允许您配置拉取请求和配置 git 挂钩以保护特定分支。通过拉取请求代码审查是保护您免受意外(
- 当实习生加入项目时,确保他的 git 技能至少是基本的,并且他了解存储库应该跟踪什么以及不应该跟踪什么。