跟着廖雪峰的git教程学习(2)时光机穿梭(三)管理修改

来源:互联网 发布:泓樽付是网络传销吗 编辑:程序博客网 时间:2024/05/13 16:31

现在,假定你已经完全掌握了暂存区的概念。下面,我们要讨论的就是,为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件。

你会问,什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改。

为什么说Git管理的是修改,而不是文件呢?我们还是做实验。第一步,对hello.html做一个修改,比如加一行内容:

<!DOCTYPE html><html><head><title>hello</title></head><body>   hello world! and i love myself~ you know?   and I love my parents too.</body></html>

然后,添加:

$ git add hello.htmlzuo@zuo-PC MINGW32 /d/mygit (master)$ git statusOn branch masterYour branch is ahead of 'BigPauZ/master' by 1 commit.  (use "git push" to publish your local commits)Changes to be committed:  (use "git reset HEAD <file>..." to unstage)        modified:   hello.html

然后,再修改hello.html:

<!DOCTYPE html><html><head><title>hello</title></head><body>   hello world!  I love myself~ you know?   and I love my parents too.   I wish I love the people love me too~ </body></html>

提交:

$ git commit -m "i love the people love me too"[master 5368cc6] i love the people love me too 1 file changed, 1 insertion(+)

提交后,再看看状态:

$ git statusOn branch masterYour branch is ahead of 'BigPauZ/master' by 2 commits.  (use "git push" to publish your local commits)Changes not staged for commit:  (use "git add <file>..." to update what will be committed)  (use "git checkout -- <file>..." to discard changes in working directory)        modified:   hello.htmlno changes added to commit (use "git add" and/or "git commit -a")

咦,怎么第二次的修改没有被提交?

别激动,我们回顾一下操作过程:

第一次修改 -> git add -> 第二次修改 -> git commit

你看,我们前面讲了,Git管理的是修改,当你用git add命令后,在工作区的第一次修改被放入暂存区,准备提交,但是,在工作区的第二次修改并没有放入暂存区,所以,git commit只负责把暂存区的修改提交了,也就是第一次的修改被提交了,第二次的修改不会被提交。

提交后,用git diff HEAD -- hello.html命令可以查看工作区和版本库里面最新版本的区别:

$ git diff HEAD -- hello.htmldiff --git a/hello.html b/hello.htmlindex 27a5b65..be5fc4b 100644--- a/hello.html+++ b/hello.html@@ -1,10 +1,11 @@-<<!DOCTYPE html>+<!DOCTYPE html> <html> <head>        <title>hello</title> </head> <body>-   hello world! and i love myself~ you know?+   hello world!  I love myself~ you know?    and I love my parents too.+   I wish I love the people love me too~ </body> </html>\ No newline at end of file

可见,第二次修改确实没有被提交。

那怎么提交第二次修改呢?你可以继续git addgit commit,也可以别着急提交第一次修改,先git add第二次修改,再git commit,就相当于把两次修改合并后一块提交了:

第一次修改 -> git add -> 第二次修改 -> git add -> git commit

好,现在,把第二次修改提交了,然后开始小结。

小结一下:

现在,我又理解了Git是如何跟踪修改的,每次修改,如果不add到暂存区,那就不会加入到commit中。


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 经营异常名录查不到怎么办移除 企业被列入经营税务异常名录怎么办 手机号被别人绑定了企业微信怎么办 刚出生一天的婴儿不肯吃奶怎么办 9个月孩子不好好吃奶怎么办 孩子2个月吃奶老是呛到怎么办 孩子4个月不好好吃奶怎么办? 3个月的孩子不吃奶肚子胀怎么办 刚出生的婴儿吃完奶打嗝怎么办 宝宝刚生下来一直睡觉不吃奶怎么办 刚生下来的婴儿不吃奶怎么办 刚生下来的小猫不吃奶怎么办 刚生的小羊羔不吃奶怎么办 刚出生的婴儿不会吸奶怎么办 生完小孩七十天妈妈咳嗽怎么办 带欣的名字三个字儿的怎么办 二十多岁的儿子沉迷游戏网络怎么办 为什么打开游戏网络却用不了怎么办 打来微信网页版显示证书错误怎么办 开了家定制家具店生意不好怎么办 宝宝起风疹怎么办要注意的问题 超市买的内裤西铁牌子没去掉怎么办 没申请生产许可证贴标了怎么办 淘宝没有品牌非要我写品牌怎么办没 意外怀孕明明一直用安全套的怎么办 找不到百度网盘的dns地址怎么办 小米众筹到了发货时间不发货怎么办 不知道电脑宽带连接账号密码怎么办 电脑如果宽带账号密码忘记了怎么办 xp电脑用户名和密码忘了怎么办 电脑的用户名和密码忘记了怎么办 电脑重置后需要用户名和密码怎么办 电脑登录用户名和密码忘记了怎么办 电脑登录用户名和密码忘了怎么办啊 微信无意中点了允许登录怎么办 qq号码登录微信无法验证怎么办 注册微信公众号邮箱激活不了怎么办 不是自己申请的qq号忘密码怎么办 联通宽带拨号账号密码忘记了怎么办 忘了路由器的用户名和密码怎么办 宽带连接用户名和密码忘了怎么办