GIT初学的学习笔记
根据–soft –mixed –hard,会对working tree和index和HEAD进行重置:
转载自: http://blog.sina.com.cn/s/blog_8218aa3801013ady.html
本文是通过学习《Pro Git》--作者Scott Chacon 后所做的整理和思考笔记。
一.GIT管理下的文件周期
1.新添加的文件或文件夹是untracked状态,意思是git的版本管理里没有这个文件。
注1:新添了文件,untracked的状态:
注2:用git add <文件名> 将文件加入git管理后,文件是tracked下的staged状态
2.在git的管理下的状态是tracked状态,包括unmodified,modified和staged三种状态。
3.unmodified状态指本地的文件与版本库里该文件最近一次的提交是一致的。
4.一旦修改了文件,文件内容与版本库里该文件最近一次的提交内容不一致,状态便变成modified。此时可以用git add <文件> 来stage文件。 stage之后的文件可以用git commit <文件> 来提交文件或 git reset HEAD <文件> 来取消stage状态。
5.当一个文件已经stage后,如果再做修改,此时的状态是部分stage,部分modified。如果commit的话,会提交已经stage的那部分。
问题:为什么要有一个stage的状态?修改了文件要stage再commit不是很麻烦吗?
我的答案:commit是一次对所有stage过的文件的提交,没有针对某一个文件的commit。 一般说来,一次commit是完成一个版本的snapshot,可以修改一个文件就stage,也可以修改完了很多文件一起stage。stage就像一个箱子,把要commit的内容都装上去。然后对装箱的内容做commit操作。 如果修改好的文件可以直接提交,可以用git commit -a来自动stage,即对全部修改自动装箱提交。
二. 同一个文件的差异查看
问题:如何查看版本库里不同版本之间的差异?
答案:用git log.比如可以用git log -p -2来查看最近两个版本之间的内容差异。详见下面 四.查看版本。
三.删除和过滤文件
1.从版本库上删除文件,本地也不保留该文件
四.查看版本
【使用范例】:
先用git log --abbrev-commit --pretty=oneline来显示所有的commit,每个commit显示为一行,用的是shot SHA-1.
再用git show
五.回滚操作
问题:如何回滚版本库里的文件?
网上参考答案:
------------------------------------------BEGIN---------------------------------------------------
git reset是指将当前head的内容重置,不会留log信息。
--------------------------------------------END---------------------------------------------------
六.远程版本库
当远程版本库有分支时,你可以选择添加某一个分支
git remote add <别名> <分支URL>
例如 git add pb git://github.com/paulbone/ticgit.git
现在再git remote -v就可以看到origin和pb两个branch了,其中origin是default的。
六.分支的建立与rebase
七.远程分支
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
