首页 > 解决方案 > Git:如果你在关闭前不提交会发生什么?

问题描述

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

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

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

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

谢谢您的帮助。

标签: gitgit-bashgit-commit

解决方案


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

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

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

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


推荐阅读