git详解

什么是git

            + 官方名称:分布式版本管理器
            + 我们自己管理代码文件夹的问题
                -->在原来的代码修改,一旦出问题,想回到前一个正常的功能比较麻烦
                -->手动保存多个版本,版本一多,分不清楚了
            + 私人解释:就是一个管理我们的文件的工具
                -->可以保留所有的版本信息
            + 就是我们安装一个软件
                ==>然后用这个软件管理我们的一个文件夹
                ==>这个文件夹被git管理以后,我们就可以对他进行各种操作
                ==>我们写的各个版本就不会丢失

什么是github

            + github是一个网站,是一个我们托管项目的平台: https://github.com/
            + 是一个世界级别的大型网站
            + 也就是说,我们写的项目的源码可以放在上面保存,只要我们不自己删除,就不会丢失
            + 就相当于百度云
            + 只不过功能更强大,上面都是开发人员(世界级别的)
            + 因为github只接受git来上传代码,所以叫做github
            + 也就是说,我们可以通过git来管理我们本地的文件夹
                + 并且可以把文件夹里面的代码上传到github保存
                + 可以写一个插件上传到github,提供给别人下载使用
                + 可以下载别人上传的插件/类库/框架,自己使用
            + 所以说,github是一个世界级别的源码分享平台
            + 类似github的网站有很多,国内比较有名的是码云:https://gitee.com/

git使用

            + 刚才我们说过,git是一个管理我们文件夹的工具
            + 那么我们就要先安装工具,才能管理我们的文件夹

安装git

            1 下载:去官网下载就可以了:https://git-scm.com/
                ==>要找到对应的我们的自己的操作系统:windows

            2 安装:双击,一直下一步(next)

            3 检测:安装完成以后,桌面上没有图标
                ==>在任意位置打开命令行: git --version
                ==>或者
                ==>在任意位置点击鼠标右键,出现:Git Bash Here
                ==>就表示安装成功

            4 使用:
                ==>在任意位置打开命令行,里面可以输入git命令
                ==>或者
                ==>在任意位置点击鼠标右键,点击Git Bash Here,里面可以输入git命令
                ==>这两者都可以,但是Git Bash Here是彩色的比较友好,所以使用它

git使用流程

            1 自报家门--每个电脑做一次
                ==>告诉git当前使用者的信息,以后后面的操作,git给你添加一些信息
                ==>点击鼠标右键-->Git Bash Here
                    ==>git config --global user.name "填写你自己的名字"
                    ==>git config --global user.email "填写你的邮箱地址"
                ==>检测是否配置成功
                    ==>git config --list
                    ==>如果出现你刚设置的内容,就是设置成功了
            2 git初始化
                ==>建一个项目文件夹,把这个文件夹给git管理
                ==>在项目文件夹的根目录,点击鼠标右键-->Git Bash Here
                    ==>指令:git init
                    ==>在项目根目录多一个.git的隐藏文件夹
                    ==>这个文件夹不能删除,如果删除,所有的版本信息都会丢失
                    ==>如果有的同学看不到这个隐藏文件夹,可以如下操作
                        ==>菜单栏-->工具-->文件选项-->查看-->显示隐藏的文件,文件夹和驱动器(勾选上)-->点击确定
                ==>git管理我们的文件夹以后,会把我们的文件夹划分成三个区域
                    ==>工作区:就是我们能看见的写代码的地方
                        -->git管理的代码,默认都是git管理的对象
                        -->git忽略的代码设置,如下操作
                            + 项目的根目录新建一个文件: .gitignore
                            + 哪些内容需要忽略,就在里面书写路径,我要忽略node_modules文件夹
                            + 就在里面写node_modules
                    ==>暂存区:就是形参一个历史版本
                    ==>本地仓库:历史版本的存放区域

                ==>查看git管理的文件信息
                    ==>指令: git status
                    ==>git不管理空文件夹
                    ==>如果希望保留空文件结构,必须在文件夹里面有文件
                    ==>我在空文件里面建立文件,但是又要表明这个文件没有实际左右,只是为了保留文件夹结构
                    ==>所有一般这种文件叫做: .keepgit

暂存区

在这里的代码形成一个历史版本
            1 正常流程: 代码从工作区==>暂存区
                ==>指令:
                    -->git add 要放到暂存区的文件名
                    -->git add 要放到暂存区的文件夹名/
                    -->git add --all 把工作区所有git管理的文件都放到暂存区
                        -->简写:git add .
                ==>工作区文件除非手动删除,不会消失
                ==>可以通过指令: git status 查看文件状态
                    -->Untracked files:在工作区还没有添加到暂存区的文件
                    -->Changes to be committed:已经添加到暂存区的文件
                ==>git diff:可以查看工作区文件和暂存区文件的区别
            2 后悔操作:代码从暂存区==>工作区
                ==>指令:
                    -->git rm --cached 要删除的文件名  ==>作用:从暂存区删除文件
                    -->git checkout -- 文件路径  ==>作用:拉取暂存区文件,并将其替换成工作区文件
                ==>运行完成以后,通过git status查看文件状态

本地仓库:历史区

==>就是把我们暂存区里面的文件变成一个历史版本
            ==>当一个文件形成一个历史版本以后,就会一直被记录下来
            ==>如果要形成一个历史版本,文件一定要从暂存区来
            ==>因为历史区就是把暂存区的内容收录进来
        指令:把暂存区文件变成一个历史版本,放到本地仓库里面
            ==>git commit -m "本次提交的历史版本的详细描述"
        指令:查看历史版本
            ==>git log  ==>查看当前版本及其前面的版本
                ==>结果是这个格式:
                commit 196032d6aeb9cb233827b779aa792f6f21def92c (HEAD -> master)
                Author: cyr <260464538@qq.com>
                Date:   Fri Aug 21 11:35:07 2020 +0800

                    第一次提交的版本,a.txt里面是hello world
                ==>版本号:196032d6aeb9cb233827b779aa792f6f21def92c
                ==>作者信息:cyr <260464538@qq.com>
                ==>提交的时间:Fri Aug 21 11:35:07 2020 +0800
                ==>版本描述信息:第一次提交的版本,a.txt里面是hello world
                ==>HEAD表示当前最近的一个版本
            ==>git reflog ==>查看所有版本
        指令:版本回退,就是把本地仓库的一个可以查看的版本恢复到工作区
            ==>git reset --hard Head 回到最新版
            ==>git reset --hard Head^ 回到最新版的前一个版本
            ==>git reset --hard 版本号  回到指定版本

后悔操作

+ 指令:查看工作区文件和暂存区文件的区别
                ==> git diff
            + 指令:查看本地仓库文件和暂存区文件的区别
                ==> git diff --cached
            + 案例1:拉去最近一次提交到本地仓库的文件到暂存区,该操作不影响工作区
                工作区:a.txt 里面的内容是33333
                暂存区:a.txt 里面的内容是33333  (指令执行完有,暂存区的a.txt变成22222)
                本地仓库:a.txt 里面的内容是22222
                ==>指令: git reset HEAD -- 文件路径
            + 案例2:撤销上一次提交,并将暂存区文件重新提交
                ==>当前已经提交了版本三,但是这个版本有问题,就需要撤销这个版本
                ==>指令: git commit --amend -m "本次提交的版本是用于覆盖版本222222"

分支操作

 ==>创建分支:
                ==>指令: git branch 分支名
            ==>删除分支:
                ==>指令: git branch -d 分支名
            ==>查看分支:
                ==>指令: git branch
            ==>切换分支:
                ==>指令: git checkout 分支名
            ==>合并分支:
                ==>指令: git merge 要合并的分支名 -m "新版本的详细描述"
        举例:
            ==>初始版本在master分支上
                ==>以版本一为起点

                ==>创建zhangsan分支和lisi分支
                    -->git branch zhangsan
                    -->git branch lisi
                ==>查看创建的三个分支
                    -->git branch


                ==>切换到zhangsan分支
                    -->git checkout zhangsan
                ==>以最新版本恢复工作区
                    -->git reset --hard Head
                ==>zhangsan分配到的任务是完成pages里面的login.html
                ==>zhangsan完成任务以后在自己的分支保存新版本:zhangsan-login
                    -->git add .
                    -->git commit -m "zhangsan-login"
                
                ==>切换到lisi分支
                    -->git checkout lisi
                ==>以最新版本恢复工作区
                    -->git reset --hard Head
                ==>lisi分配到的任务是完成pages里面的cart.html
                ==>lisi完成任务以后在自己的分支保存新版本:lisi-cart
                    -->git add .
                    -->git commit -m "lisi-cart"

            ==>切换回到主分支master
                ==>git checkout master
            ==>先合并zhangsan分支
                ==>git merge zhangsan
            ==>合并完成以后删除zhangsan分支
                ==>git branch -d zhangsan

            ==>先合并lisi分支
                ==>git merge lisi -m "本次版本的详细信息"
            ==>合并完成以后删除lisi分支
                ==>git branch -d lisi

分支冲突

    + 初始化一个仓库
                -->git init
            + 创建一个项目的初始版本
                -->git add .
                -->git commit -m "init"
            + 创建zhangsan分支和lisi分支
                -->git branch zhangsan
                -->git branch lisi
            + 切换到zhangsan分支
                -->git checkout zhangsan
                -->git reset --hard Head
                -->可以对a.txt做一些操作,比如改成hello zhangsan
                -->提交本次版本
                -->git add .
                -->git commit -m "hello-zhangsan"
            + 切换到lisi分支
                -->git checkout lisi
                -->git reset --hard Head
                -->可以对a.txt做一些操作,比如改成hello lisi
                -->提交本次版本
                -->git add .
                -->git commit -m "hello-lisi"
            + 切换到master分支
                -->git checkout master
                -->先合并zhangsan分支
                    -->git merge zhangsan
                    -->git branch -d zhangsan
                -->再合并lisi分支
                    -->git merge lisi
                    -->git branch -d lisi==>执行到这个步骤的时候,出现了版本冲突
                    -->需要手动修改a.txt这个冲突文件,然后提交这个修改好的版本
                    -->git add .
                    -->git commit -m "新版本的描述信息"

常用的分支命名

  + master 主分支:永远只存储一个可以稳定运行的版本,不能在这个分支上直接开发
            + develop 主要开发分支,主要用户所以功能开发的代码合并,记录一个一个的完整版本
                ==>包含测试版本和稳定版本
                ==>不要在这个分支上进行开发
            + feature-xxx:功能开发分支,从develop创建的分支
                ==>主要功能是某一个功能的开发
                ==>以自己功能来命名就可以,例如:feature-login/feature-list
                ==>开发完毕以后,合并到develop分支上
            + feature-xxx-fix:某一个分支出现bug以后,在当前分支上开启一个fix分支
                ==>解决完bug以后,合并到当前功能分支上
                ==>如果是功能合并之后发现bug可以直接在develop上开启分支
                ==>修复完以后合并到develop上
            + hotfix-xxx:用于紧急bug修复
                ==>直接在master分支上开启
                ==>修复完毕以后合并到master

远程仓库:github

   ==>注册一个github账号
            ==>登陆成功,在界面的右上角有一个+的符号,点击选择new repository
            ==>填写远程仓库的信息
                ==>Repository name: test2005==>点击按钮:create repository
            ==>弹出的页面中
                ==>远程仓库地址:https://github.com/cyanrui/test2005.git
                ==>在本地仓库创建好版本信息
                    1 git init 
                    2 git add .
                    3 git commit -m "版本信息"
                ==>给远程仓库取一个好记忆的名字
                    git remote add 名字 远程仓库地址
                ==>把本地仓库提交到远程仓库
                    git push -u 名字 master
                ==>提交成功以后去: https://github.com/cyanrui/test2005.git 查看
            ==>下载远程仓库到本地
                ==>如果你的电脑从来没有下载过这个仓库,就使用git clone 远程仓库地址
                ==>如果你的电脑已经下载过这个仓库,但是版本可能不是最新版,就使用git pull来拉取最新版,版本合并
                ==>如果你的电脑已经下载过这个仓库,但是版本可能不是最新版,就使用git fetch来拉取最新版,不会进行版本合并
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值