此篇博文就是收录一些常用的语句,具体想要实例可以寻找廖雪峰教程中的例子,这篇文章适合于有一定了解的人,作为一个笔记,收录一些命令,并记录一些问题,后面的文章会记录一些git原理,感兴趣可以关注一下
- 告诉git当前用户名和邮件地址,用于提交版本库时认证
$ git config --global user.name "你的用户名"
$ git config --global user.email "你的邮箱"
- 创始化版本库,将工作目录打开到你想创建版本的文件夹
$ mkdir 文件夹名字 //创建文件夹
$ cd 你创建的文件夹
$ git init
- 创建完后可以看见有一个隐藏目录为.git,这个就是git的版本库(repository)
注意Git只是追踪文本文件的变化,对于图片和视屏等文件,无法看出具体的变化,只能看到大小改变,无法像文本一样看出那个地方修改了。
特别的对于windows不推荐使用记事本之间编辑,会有很多出错,可以改用sublime text等进行修改 - 当需要将新建立的文件提交到版本使用
$ git add 文件名
- 但这并没有完,最后还要提交再提交一次,最终确认,git add的提交相当于先提交到一个暂存区,而下面的指令才是真的完成提交到库,需要注意每一次的修改都要加上一个说明,不添加-m参数就会自动打开一个编辑器让你输入提交说明,*windows注意,可能会出现由于Linux和windows换行符不一样的的warning,可以通过这篇博客解决
$ git commit -m "对于此次修改的描述"
- 提交后,第一行会看到命令行输出的分支名,是否是root-commit,提交id。第二行会看到修改多少行,如果提交新文件第三行会看到创建了新文件。
想法:
相比于CVS和SVN每一个目录下都一个.cvs,git只有根目录下有一个git的好处?
我的理解是CVS固然每一个目录下有一个CVS目录可以保存修改的信息,但不包含原始文件,当单独某一个子目录被拿出来都可以放到新的工作区修改,而git整个目录下只有一个.git则不利于这种操作,但缺点是如果工作区文件修改了,向服务器提交只能提交整个文件,无法只传输文件改动部分,且有信息泄露风险,SVN在版本库中增加了文件的原始拷贝,但相对的占用更多的空间,同时每一个文件下都有svn就会使搜索.svn文件时间增加,不利于大型项目的搜索。
注意在一个Git工作目录下的子目录工作时,会递归查找.git目录(文件的版本库),即当前工作区的根目录。
将版本库和工作区放在一起是否不安全?
我的理解是每个人都是独立的一个版本库,用这个角度看,相当于所有人都有一个克隆,这样当一个用户被删,其他用户也能提供有效的克隆版本,因此并不存在“鸡蛋放在一个篮子“的危险