Git是目前世界上最早进的分布式版本控制系统(没有之一)。开始建立了话题学习,也乘着这个兴头开始学习起来了git。公司一直在用git但是只知其一;不知其二,花了个时间大体学习了一番!git
为何要学gitgithub
git与github,git与svn服务器
经常使用命令网络
很多小白有这个疑问,当初用svn插件用的66的为何要git,命令行一点都玩不转啊。做为一个专业的开发人员,我发现两点:1.通常用命令解决的事情都很高大上能够泡妹,看上去就很腻害;2.随大流 :强大的社区和使用者是很大的优点,有不少教程、工具。分布式
首先不少人搞不清git与github的区别。git是一个版本管理工具,github是全球最大的同性交友平台。说到github不得不安利一下:(感谢知乎原文)svn
Repository即项目工具
Fork也就是受权拷贝学习
Branch分支spa
Pull Request插件
SVN的特色是简单,只是须要一个放代码的地方时用是OK的。 Git的特色版本控制能够不依赖网络作任何事情,对分支和合并有更好的支持。
工做区:就是电脑里能看到的目录;
版本库repository:工做区有一个隐藏目录.git,这个不算工做区,而是Git的版本库;
暂存区stage:Git的版本库里存了不少东西,其中最重要的就是称为stage(或者叫index)的暂存区,用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
分支branch:Git为咱们自动建立的第一个分支master,以及指向master的一个指针叫HEAD,用git commit提交更改,实际上就是把暂存区的全部内容提交到当前分支;
远程仓库remote:好比说github或者自定义git服务器。
已有远程仓库和非git项目:把项目init成git项目;git remote add origin添加远程仓库;git push -u origin master首次提交
已有远程仓库和git项目:把git项目添加一个远程仓库;切换远程仓库首次提交
无远程仓库:先建立远程仓库
git reset --hard **命令既能够回退版本,也能够把暂存区的修改回退到工做区 git log查看修改版本 git diff HEAD --**查看不一样 git checkout --**文件回到最近一次提交状态
git branch **建立 git checkout **切换 git checkout -b **建立并切换 git branch -b **删除
git merge **