Git是一个开源的分布式版本控制系统,能够有效、高速的处理从很小到很是大的项目版本管理。html
Git 最初是由Linus Torvalds设计开发的,用于管理Linux内核开发。Git 是根据GNU通用公共许可证版本2的条款分发的自由/免费软件,git
安装参见:http://git-scm.com/github
GitHub是一个基于Git的远程文件托管平台(同GitCafe、BitBucket和GitLab等)。服务器
Git自己彻底能够作到版本控制,但其全部内容以及版本记录只能保存在本机,若是想要将文件内容以及版本记录同时保存在远程,则须要结合GitHub来使用。使用场景:app
其余:分布式
集中式:远程服务器保存全部版本,用户客户端有某个版本
分布式:远程服务器保存全部版本,用户客户端有全部版本工具
Git在各行各业都须要用到,尚未Git以前,使用的最原始的版本控制,(相似咱们的毕业设计论文,须要修改N次)有显著的缺点, 以下:fetch
- 多个文件,保留全部版本时,须要为每一个版本保存一个文件。spa
- 协同操做,多人协同操做时,须要将文件打包发来发去。设计
- 容易丢失,被删除就意味着永远失去....(能够选择网盘)
为了解决以上版本控制存在的问题,应运而生了一批版本控制工具:VSS、CVS、SVN、Git等,其中Git属于绝对版主地位。
注意:
客户端(本地):本地编写内容以及版本记录
服务端(网盘):将内容和版本记录同时保存在远程(无关紧要)
2.Git操做
命令: git init 生成一个隐藏的git文件 ls 查看路径 git add . 把当前目录的全部文件和文件夹加入到版本里。 git config --global user.email 'xx@live.com' 设置邮箱 git config --global user.name 'zbk' 设置用户名 git commit -m '初次版本上线' 真实的加到版本里。在这以前要设置邮箱,用户。 git add templates/index.html 单独加个别的文件 git commit -m '添加什么什么功能' 描述。 git reset --hard (想回滚到的:commit值就是版本号) 回滚到原来的状态。 git log 查看添加的版本记录 git reflog 跳回到前面的版本号 git stash 把当前工做区全部修改过的内容存储到“某个地方”,将工做区还原到当前版本为修改过的状态。 git stash pop 将第一个记录从“某个地方”从新拿到工做区(可能有冲突) git stash list 查看“某个地方”存储的全部记录 git stash clear 清空“某个地方” git stash apply 编号,指定编号记录从“某个地方”从新拿工做区(可能有冲突) git stash drop 编号,删除指定编号的记录。 git status 建分支 git branch bug 建立分支 (master) git branch 查看总共有多少分支 git checkout bug 跳转到名叫 “bug”的分支,切换以前把代码提交一下。 git merge bug 将bug分支里面的内容合并到 master的内容里面。 git branch -d bug 删除分支 bug git remote add 别名 https://github.com/..... git fetch 别名/master 获取,下载到分支 git merge 别名/master 合并,下载到原数据 git push 别名 master 把当前的代码推送到远程master上 git clone 地址 克隆拿到代码 git pull 别名 dev 从远程地址拿到代码。拉下来,下载到工做区 mkdir ls cd git init git remote add 别名 地址 gt pull 别名 master ls
3.git 小结:
小结: git管理大体分为 2个区 4个状态 两区域分别为: 工做区 版本库 四个状态分为: 原内容 修改过的内容 暂存 分支 分支开始:git reset --soft 版本号 git reset head 文件 git check out文件 git reset --mix 版本号 产生冲突的就须要本身手动的去解决!!!! 在公司里出现了紧急问题,通常都会在分支里面去解决。 首先,建立修复bug的分支,那么什么是分支呢? master 不能修改的。 只能新建一个bug分支 bug 修复以后,合并到 master 看看以那个分支为主,要合并到哪本身分析。