Git UNDO:如何自信地重写 Git 历史记录

对于任何在团队中工作的数据科学家来说,能够撤消 Git 操作可以成为救星。本实用指南将教您拯救世界所需的一切知识。Git UNDO :如何自信地重写 Git 历史一文首先出现在 Towards Data Science 上。

来源:走向数据科学

合作完成了一个 ML 项目 — 重新调整功能分支、合并实验笔记本或在拉取请求之前清理提交 — 您是否曾经遇到过这样的情况:“呃,哦,我刚刚做了什么?”

对于任何在团队中工作的数据科学家来说,能够撤消 Git 操作可以成为救星。

这篇文章将为您提供自信地重写历史的工具。

开始前的注意事项

  • 我还就这篇文章的内容进行了现场演讲。如果您喜欢视频(或希望在阅读的同时观看) — 您可以在这里找到它。
  • 📕 我的书《Gitting Things Done》正式出版了!
  • 在 Amazon 上获取电子书,或在 https://www.freecodecamp.org/news/gitting-things-done-book/ 上免费阅读
  • 记录 Git 中的更改

    在了解 Git 如何撤消操作之前,您应该首先了解我们如何在 Git 中记录更改。如果您已经了解所有术语,请随意跳过这部分。

    将 Git 视为一个及时记录文件系统快照的系统非常有用。考虑到 Git 存储库,它具有三个“状态”或“树”:

    通常,当我们处理源代码时,我们会在工作目录中工作。工作目录(ectrory)(或工作树)是我们的文件系统上具有与其关联的存储库的任何目录。它包含我们项目的文件夹和文件,以及一个名为 .git 的目录。我在上一篇文章中更详细地描述了 .git 文件夹的内容。

    进行一些更改后,您可能希望将它们记录在存储库中。存储库(简称:repo)是提交的集合,每个提交都是过去日期项目工作树的存档,无论是在您的计算机上还是在其他人的计算机上。存储库还包括除代码文件之外的其他内容,例如 HEAD、分支等。

    是时候开始实践了 🙌🏻 使用 git init 初始化新的存储库。将一些文本写入名为 1.txt 的文件中。

    在上述三个树状态中,1.txt 现在在哪里?

    为了暂存它,将其添加到索引中,请使用 git add 1.txt。