三十分钟拿Git干活
1.为什么使用git?
a) 非常有利于自己知识和经验的积累
b)能够通过git展示工作经验和分享交流自己的项目
c)能够通过git管理团队和项目
2.为什么选git?
a)好用
b)无缝的提交到github等平台
3.git和github的关系?
git是一个版本控制工具
github是一个用git做版本控制的项目托管平台。
4.git 几个重要的概念
这里类比一下
仓库(书店):所有版本的代码都在仓库(所有版本的《金瓶梅》都在书店里)
分支(书架):不同功能功能的代码存放的地方(我把《金品梅》插图版和古装版放在不同的书架,这样可以互不干扰)
提交(书):每一个版本的代码 (《金瓶梅》插图版 第一版印刷,第二版印刷……)
5.核心重点基础内容怎么玩
官网:https://git-scm.com/ git是可以装在自己电脑或者服务器的,不墨迹开整
1.新建一个文件夹helloGit,进入
2.右键gitBash,创建仓库,
git init
3.创建一个a.txt,打开里面内容随便造。
4.输入
git status
看一下git的状态,这个命令牛逼之处就是告诉你接下来该怎么做,人家说了你没把a.txt交给仓库去管。
5.将所有文件加入到缓存区(相当于你把文件交给管理员了),
git add .
6.将文件 提交到仓库(管理员把你的文件扔仓库里了),
git commit -m '这里是写点注释,省的你不知道自己提交了啥内容,这是第一次提交'
这样一次提交就完成了,
7.打开a.txt 随便加点内容,继续造,然后
git add .
git commit -m '第二次提交'
8.我们看看我们提交了几个版本,
git log
这里我们提交的两次就看到了,而且能看到commit后面的id 。我要想回到第一次提交咋整,
git checkout c0f259e284a27c1871562631bd9753d46f5798bb
打开a.txt 看看,回到第一个版本了。到现在你已经会了,提交多个版本,回滚到某个版本。我想回到上一个版本老找id忒费事,可以用这个
git checkout -- .
6.说点进阶的玩法-分支
大家考虑这么一个情况,假如你是angularjs开发团队,你想angular2.0基于angularjs开发,但是有特别大的革命性变化,你说咋办好?
这时候你看这样合不合理,我分一部分人负责原angularjs的基础维护和平滑升级,然后复制一份angularjs让另外一个团队进行革命性开发,这样两个团队都不互相干扰,等2.0的功能开发完成了,我再融合到原来的angularjs里面去。这个就是分支的功能。
1.我先复制一份原来的东西,开一个新的分支
git checkout -b new-fenzhi
我们看看现在有几个分支,
git branch
大家可以看到这里有两个分支,一个master,一个new-fenzhi,
新建b.txt的内容,然后
git add .
git commit -m '我在新分支上糟蹋的'
注意,这时候我们删除b,我们回到master分支,看看它影响master不,
git checkout master
git log
大家可以看到 根本就没有影响master,master下是没有b.txt 我们假设搞完了,把git new-fenzhi的东西合并回master咋整,
git merge new-fenzhi
这样就合并回去了。
7.说下git和github一起玩。
1.最简单把github项目搞下来
git clone xxxxx.git
2.提交到github,第一次这么做
git remote add origin https://github.com/breaddream/helloGit.git
git push -u origin master
这里注意,如果提示orgin 已经存在,就先把远程的仓库删除再执行,
git remote rm origin
第二次以后这么做,
git push
8.后续学习
上面这些适合个人开发者,如果你是一个部门主管,那么你就要会搭建内网git服务器,因为公司项目有保密性要求,是不可能让你随便往git上传的。如果团队很小,你自己搭建就ok了进行权限管理,如果公司已经有一定规模比如100人团队,就需要有linux程序员进行严格的权限管理了,尤其对源代码有很高保密性要求的公司,甚至员工的修改和操作都会有记录。有兴趣的同学可以试着搭建一个git服务器供团队使用。