Git == > 版本控制
1.git介绍:
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。
Git 最初是由Linus Torvalds设计开发的,用于管理Linux内核开发。Git 是根据GNU通用公共许可证版本2的条款分发的自由/免费软件,
安装参见:http://git-scm.com/
GitHub是一个基于Git的远程文件托管平台(同GitCafe、BitBucket和GitLab等)。
Git本身完全可以做到版本控制,但其所有内容以及版本记录只能保存在本机,如果想要将文件内容以及版本记录同时保存在远程,则需要结合GitHub来使用。使用场景:
- 无GitHub:在本地 .git 文件夹内维护历时文件
- 有GitHub:在本地 .git 文件夹内维护历时文件,同时也将历时文件托管在远程仓库
其他:
集中式:远程服务器保存所有版本,用户客户端有某个版本
分布式:远程服务器保存所有版本,用户客户端有所有版本
Git在各行各业都需要用到,还没有Git之前,使用的最原始的版本控制,(类似我们的毕业设计论文,需要修改N次)有显著的缺点, 如下:
- 多个文件,保留所有版本时,需要为每个版本保存一个文件。
- 协同操作,多人协同操作时,需要将文件打包发来发去。
- 容易丢失,被删除就意味着永远失去....(可以选择网盘)
为了解决以上版本控制存在的问题,应运而生了一批版本控制工具: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 看看以那个分支为主,要合并到哪自己分析。