Git:如果你在关闭前不提交会怎样?

0 git git-commit git-bash

我很惊讶我找不到关于分期/提交的性质的更彻底的解释,所以我问自己。我是 GitHub 的新手(并且没有在这台计算机上下载 Bash,所以我宁愿让人们回答)。

具体来说,假设您正在使用 GitBash 在项目目录中工作。您进行一些基本更改并保存。无需暂存或提交任何内容,即可关闭所有应用程序。您所做的更改会发生什么变化?它们会被抹去还是会留下变化?我想同样的问题适用于如果你提交了你的东西然后退出了。

“提交”是否存储在某个文件夹中?“暂存区”只是一个临时的 Bash 东西还是也有一个物理文件夹?

如果退出,是否必须重新提交更改?

谢谢您的帮助。

小智 5

首先请注意,GitHub只是用于存储由Git版本控制的文件的几种在线服务之一。Git 是实际跟踪文件更改和版本的程序,无需深入了解内部结构,只需跟踪文件的不同版本。

当您对文件进行更改时,该更改将被保存,就好像该文件不受版本控制一样。当您关闭应用程序时,您的更改会保留,就像 git 不存在一样。提交您的更改只是将一种“检查点”保存到 git 本身。这允许您将更改恢复到以前的提交,比较不同的版本等。如果您退出应用程序,您的提交也会被保存。

本质上是的,提交存储在某个文件夹中,但是 git 足够聪明,不会在不同时间点存储大量文件副本,而是存储尽可能少的信息,同时仍保留更改内容的记录。暂存区只是一个决定你希望 git 跟踪哪些文件的地方。当你去提交文件时,只有那些已经添加到暂存区的文件才会提交给 git。其余的仍然正常保存它们的更改,但是由于您没有告诉 git 关心它们,它们将被忽略。您可以通过更改一些文件,使用 仅将其中的一些添加到暂存区git add,然后调用来查看这一点git status,这将通知您某些文件已准备提交,而其他文件已“修改”或“未跟踪”但不会做出承诺。

如果您真的想四处看看,您可以尝试打开git存储库中的隐藏文件夹(.在 Mac/Linux 上以 a 为前缀),以查看 git 如何存储您所做的更改。