huangchunxia 2020-01-10
先来理解一下git的工作流程
git add新增or修改
git commit 暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新,即 master 指向的目录树就是提交时暂存区的目录树。
git reset HEAD暂存区的目录树被 master 分支指向的目录树所替换
git rm --cached <file> 命令时,会直接从暂存区删除文件,工作区则不做出改变
git checkout/git checkout -- <file>会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动。
git checkout HEAD/git checkout HEAD <file> 会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。
Git是目前世界上最先进的分布式版本控制系统
svn与git相比较 :git提交代码可以离线 svn提交代码需要网速很快 网慢就很差
SVN等老式版本控制工具是将提交点保存成补丁文件,Git提交是将提交点指向提交时的项目快照,提交的东西包含一些元数据如作者,日期,GPG等
git可以再同一个目录切换不同的分支 svn把不同分支放在不同目录下
git使用中 即时性:创建和切换分支几乎是同时进行的,用户可以上传一部分分支,另外一部分分支可以隐藏在本地,不必将所有的分支都上传到GitHub中去
灵活性:用户可以随时创建、合并、删除分支,多人实现不同的功能,可以创建多个分支进行开发,之后进行分支合并,这种方式使开发变得快速、简单、安全
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,所以获取时要先从中央服务器获取,然后干活 再推送到中央服务器
集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网 慢就会很慢了。
git没有中央服务器,每个人一个电脑就是一个版本库 改动相互推送即可见
下载完git bush开始配置 git config --global 参数
先配置user.name 和user.email
pwd 命令是用于显示当前的目录
所有的版本控制系统,只能跟踪文本文件的改动,比如txt文件,网页,所有程序的代码等,Git也不列外,
版本控制系统可以告诉你每次的改动具体改了什么 不会显示
提交修改和提交文件是一样的2步(第一步是git add 第二步是:git commit)
把已有的本地库和github相关联 却提示
实际应当先启动 即git init编程工作区 然后再git commit再git status看看状态 再重新关联github管理库