【整理自whh原文地址】Git是目前世界上最先进的分布式版本控制系统(没有之一)。开始创建了话题学习,也乘着这个兴头开始学习起来了git。公司一直在用git可是一知半解,花了个时间大致学习了一番!
- 为什么要学git
- git与github,git与svn
- 常用命令
为什么要学git
不少小白有这个疑问,当初用svn插件用的66的为什么要git,命令行一点都玩不转啊。作为一个专业的开发人员,我发现两点:1.一般用命令解决的事情都很高大上可以泡妹,看上去就很腻害;2.随大流 :强大的社区和使用者是很大的优势,有很多教程、工具。
git与github,git与svn
git与github
首先很多人搞不清git与github的区别。git是一个版本管理工具,github是全球最大的同性交友平台。说到github不得不安利一下:(感谢知乎原文)
- Repository即项目
- Fork也就是授权拷贝
- Branch分支
- Pull Request
git与svn
SVN的特点是简单,只是需要一个放代码的地方时用是OK的。 Git的特点版本控制可以不依赖网络做任何事情,对分支和合并有更好的支持。
常用命令
git介绍
- 工作区:就是电脑里能看到的目录;
- 版本库repository:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库;
- 暂存区stage:Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
- 分支branch:Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD,用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支;
- 远程仓库remote:比如说github或者自定义git服务器。
创建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 **