gpt4 book ai didi

git - 为什么有人应该在 git commit 之前使用 git add?或者为什么有人应该使用 git add ?

转载 作者:行者123 更新时间:2023-12-04 14:57:44 29 4
gpt4 key购买 nike

我不是 git 专家,我明白版本控制背后的整个想法是能够记录文件的历史。如果我们可以通过提交来跟踪对工作目录中文件所做的更改,那么我为什么要执行 git add在我可以的时候记录文件 git commit ?
我经历了this SO 上的线程并发现了这个:

I use git add when I think a file is ready to be committed, even if I know I won't make the commit until some time later. All else apart, git diff reports on the differences between what is in the index (staging area) and what is out in the working directory.


这显示了这样做的好处 git add之前 git commit .有没有更多这样的好处或者是 git add有人应该遵循的共同约定(但为什么?),或者做 git commit不做 git add一直有效吗?
对不起,如果我听起来很愚蠢。提前致谢!!

最佳答案

很长一段时间我只是认为 git 是编程项目的某种“保存状态”(或快照),
我可以在历史中回到以前的状态
(当时我只是 git add . 然后是 git commit
但是通过“暂存”,现在我可以在提交之前“预览”我想要提交的内容。
我发现将暂存视为提交的“打印预览”更容易:您可以在实际提交之前查看提交的内容
(因为您可以在实际使用纸张和墨水之前看到打印的文档)
例如,我编辑了 9 个文件,3 个文件包含新功能,2 个文件包含错误修复,而 4 个文件未完成(可能是新功能或取消的功能请求)
通过分期,我可以:
A. git add 这 3 个文件包含新功能,2 个文件包含错误修复,然后将其提交为“生产就绪提交”
(准备部署,例如:通过自动化方式上传到公共(public) http 服务器)。
我的其他 4 个未完成的文件将不会包含在提交中
B. git add 这 3 个文件包含新功能然后提交,然后 git add 这 2 个文件包含错误修复然后使用不同的提交消息进行单独提交以获得更好的可追溯性
这种“分期”的另一个好处是让我有时间最后一次“审查”我的更改。在这个“最后审查”时间,我可以更彻底地发现错误以防止错误(例如:错字)
我知道写git add filename_here不是很实用3-5次
在每次提交之前(或者如果你更改了更多文件,则多次),所以我使用 git 客户端,如 lazygit自动化分期
(我只需 Gist 击我想要暂存的文件的文件名)
使用lazygit,我什至可以部分地暂存文件(例如:7 行中仅更改了 5 行)。当某些更改不是很细粒度时,这非常有用(例如:更改了包含类定义的文件,我更改了 3 个方法/函数的定义,其中 2 个方法/函数已准备好提交,1 个尚未准备好)
lazygit preview
其他可用于“预览并单击”暂存的 git 客户端:sourcetree (windows)、gitextensions (windows/linux)
免责声明:我不拥有也不为上述这些 git 客户做出贡献,我只是觉得它们非常有帮助并想分享

关于git - 为什么有人应该在 git commit 之前使用 git add?或者为什么有人应该使用 git add ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67625966/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com