Discuss / Git / 主题是否与实验不对应

主题是否与实验不对应

Topic source

llk小弟

#1 Created at ... [Delete] [Delete and Lock User]

这章是要说 git管理的是修改而不是文件 而通过修改第一次进行add,修改第二次进行commit的实验。 这个实验似乎并不能证明git管理的是修改而不是文件,只能说明git是严格遵守从工作区add到暂存区,再commit暂存区到分支。 即git也可能管理的是文件。(将文件放入暂存区,再放入分支) 因此本章读起来略有别扭,用来证明的例子是否与主题不和? 也可能是本人愚钝,尚不能进行跨度比较大的推理。望解惑

金膺33079

#2 Created at ... [Delete] [Delete and Lock User]

我的看法:举个例子,你把readme文件修改,然后不要add,然后把readme文件删除,然后git status 他会告诉你readme文件已经被删除,但是你仍然可以add readme文件把他的修改提交,git管理的是修改而不是文件 把他当成一种理解,不要钻牛角尖

金膺33079

#3 Created at ... [Delete] [Delete and Lock User]

我的解答犯了致命的错误,不要被误导。。。。。

eeerry

#4 Created at ... [Delete] [Delete and Lock User]

确实主题与实验不对应,没猜错的话,廖大想表达的是,commit的是与版本库文件中不同的那几行那几行那几行(重要的部分说三遍),而非整个文件,也就是说只提交了差异化那部分。本章中的这个例子放在上一章比较合适

我觉得没毛病,如果git 管理的是文件的话,提交的应该是整个文件,所以提交的应该是文件最后被修改的样子,也就是第二次修改之后的样子

黄VS岩39440

#6 Created at ... [Delete] [Delete and Lock User]

个人实验后发现应该是这样的,每次add之后,当前工作区所有文件被放入暂存区(前提是add -A) ,然后commit之后,仓库就与暂存区同步了,如果在add之后继续对工作区进行增删改,那么你不add而直接commit,那么暂存区中的还是上次add的内容,commit后仓库分支内还是和add时候同步的,至于你的工作区当然还是你增删改后的样子,这个时候你如果reset到之前commit.工作区就会与分支合并,相同文件被分支覆盖,删掉的被新增进来,至于你新增的文件当然还在。

zangcunlim

#7 Created at ... [Delete] [Delete and Lock User]

modified的文件add到暂存区的是修改而非整个文件,而commit是把暂存区存储的修改提交到分支上而已。应该是这样的

另外一个实验事实:init后把一整个项目第一次add时耗费较长时间,而下一步的commit几乎不需要时间。


  • 1

Reply