什么是git
git是一个分布式版本控制器
- 是一个软件,类似于QQ,office等要安装到电脑上才能使用的工具。
- 作用版本控制,比如一份Excel表每天都需要更新,每次更新都需要另存一份,通常我们的习惯是放到同一个文件夹下,再更改名字—Excel0315,Excel0316…这就是一种版本控制,我可以再该文件下看到不同的版本,方便我们查找历史数据,如果今天更新的数据有误,我们可以找到前一天的,尽可能弥补损失。git是一种更为强大的版本控制工具。
- 分布式,有一个中心(如github)保存着各个版本的代码,同时每一个本地(如自己的计算机,朋友的计算机)上也保存着各个版本的代码,这样有一个好处,如果中心服务器挂掉了,本地还有备份。SVN是一种集中式版本控制器,即代码各个版本保存在中心,本地没有。
安装git
git地址:https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git
安装教程:https://www.cnblogs.com/xueweisuoyong/p/11914045.html
git使用
# 1. 现在有一个项目,从0开始,如在E盘下创建一个空文件夹,进入文件夹,鼠标右击,点Git Bash Here
# 2. 进入git命令框,输入git init,然后该文件下会出现一个.git的隐藏文件
git init
# 3. 创建一个a.py的文件,可以在文件夹里右击创建,也可以通过git命令框创建,与linux中命令相同
touch a.py。
# 4. 查看管理目下的文件状态,你会看到一个红色的a.py,此时a.py处于工作区,还不能使用git管理
git status
# 5. 管理制定文件,下面两条命令区别在于"."是提交所有变更文件,再使用git status可以看到a.py变成了绿色,此时文件处于暂存区,此时还不是一个版本。
git add a.py
git add .
# 6. 生成版本,-m后跟的是描述信息
git commit -m '第一个版本'
# 7. 查看版本,出现一些信息,commit后跟的是版本号,author作者,date时间,第一个版本。
git log
# 注意第一次使用可能会让你配置个人信息,执行下面命令即可
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
# 8. 更改a.py里的内容,假设做了一个网页登录功能,代码为aaaaa。用编辑器打开a.py输入aaaaa或者用vim都行。
vim a.py
# 9. 使用git status命令,你会发现a.py又变红了,再次执行上面4,5,6的步骤,记得6中描述信息改为第二个版本。
# 10. 现在我的第二个版本出现了严重问题,不单单是解决bug就能搞定的,这个时候为了项目能正常运行,需要回滚到第一个版本。
git reset --hard 版本号
git log
# 11. 如果这个是时候老板告诉你即使有问题,第二个版本也必须上线,此时的版本号在最前面黄色的字体,复制到下面的命令hard后,注意这里的复制不是ctrl + c,是ctrl + ins;也可以使用鼠标右键去复制粘贴,头铁的小伙伴可以自己打一遍。
git reflog
git reset --hard 版本号
git分支
分支可以给使用者提供多个环境,意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。如上述的第10步,如果只是一个小问题,不可能直接回滚到上一个版本来解决问题,也不能直接在线上项目修改,万一一个bug改成了两个咋办?
假设一个项目已经进行到v3,v3版本上有bug需要修复,我们可以创建一个bug分支,在b1上修改bug后合并到v4;同时需要增加新的功能,我们可以创建一个dev分支,在分支上进行开发,再合并到主线上;
分支的使用
# 查看目前所处的分支
git branch
# 创建分支
git branch 分支名字
# 切换分支
git chaecout 分支名称
# 分支合并(可能产生冲突),注意在master中合并bug/dev
git merge 要合并的分支
# 删除分支
git branch -d 分支名称