GIT

git的概述

            git是一个版本管理工具,用来管理对应的版本的。开发流模式 敏捷开发(中小型公司做外包的时候采
            用的),迭代式开发(公司的主项目 大型的外包项目),迭代式开发(版本的迭代 涉及到多版本)就
            需要git进行管理了。git不但是一个版本管理工具,而且它还可以进行分布式管理。(分布式的版本管理
            工具(分支的思想)),svn版本管理工具(不是分布式(只有一条主干 (只有一个)))

        git的安装

            下载地址:https://git-scm.com/

 

 

        安装教程

            无限下一步(最好不要改默认路径)

        测试安装完成

            随便在任意文件下 点击右键(git gui here===git bush here)

 

 

            打开dos命令窗口 window+r
           
        git --version

        dos命令窗口和git命令窗口

            dos命令窗口是windows系统下的,git命令窗口是点击git bash进入的窗口。
            dos命令窗口只支持windows指令,git命令窗口只支持linux指令

        git入门    

            git的工作流程通过对应的仓库来进行管理的,每个人都拥有对应的本地仓库,由远程仓库提供统一管
            理。首先需要在本地仓库进行commit,然后再将对应的内容从本地仓库push到对应的远程仓库。远程
            仓库才能提供对应的所有代码的管理,而本地仓库只能管理对应的本地的代码。所以首先先要建立对应的本地仓库。

        构建本地仓库 git init (就是一个文件夹)

            
git init

 

            会产生对应的一个文件夹 这个文件夹就是我们的本地仓库(这个文件夹删除那么对应的本地仓库就没有
            了 它为了防止我们去删除这个文件夹 它将这个文件夹设置为隐藏的)

 

 

        git仓库的分区

            git仓库为了更好的管理 它进行了分区操作,将对应的仓库分为了三个区,工作区,暂存区,历史区(版本库)。
  • 工作区 就是我们的工作文件存放的区(也就是这个git文件夹的父文件夹下的所有的文件都属于工作区)
  • 暂存区 就是我们暂时存储文件的区 暂时存储的文件也就是需要commit到历史区的文件
  •  历史区 它就是保存我们所有的版本的一个区(版本管理 回退)    

        一个文件如果需要到历史区必须经过暂存区

 

 

        暂存区操作

            从工作区到暂存区

             
   git add 文件路径    

 

            查看对应的文件状态(查看对应的暂存区内容)

                
git status

 

 

            从暂存区撤回

                
git reset HEAD -- 文件名

 

 

            添加文件夹到暂存区(它会将里面所有的内容添加进去 如果是空文件夹 将添加不成功)

                
git add 文件夹路径

 

 

            从暂存区撤回文件夹(将文件夹下所有的内容撤回)不会影响工作区

                
git reset HEAD -- 文件夹名

 

 

            添加所有内容到暂存区

              
                git add --all
                git add .
                git add *

 

 

            从暂存区撤回所有

            
                git reset HEAD -- .
                git reset HEAD -- *  

 

 

        将暂存区的文件提交到历史区

            暂存区的数据到历史区必须提交对应的信息(用户名及邮箱)

               
                git config user.name 名 --global
                git config user.email 邮箱号 --global  

 

            提交对应的暂存区文件到历史区 (暂存区就没有了)

                
git commit 文件名

 

 

            vi编辑器 三种模式

                阅读模式(不能编辑的 插入模式返回阅读模式 按esc)
                插入模式 按i 都能进行对应的插入模式(就可以进行编辑)
                命令行模式 (按对应的: 进入命令行 后面接的是对应的指令 wq 保存并退出)

 

 

            查看版本库的信息

               
 git log

 

 

            简化写法 不需要进vi

                
git commit 文件名 -m 相关信息

 

 

            提交所有的内容

             
   git commit .

 

                最新提交的它有个别名叫HEAD

 

 

            历史区数据是不能撤回的 但是它可以回滚数据来影响对应的暂存区和工作区

               
 git reset --hard 版本号    

 

 

        分支

            有a去完成登录功能,b去完成对应的用户列表渲染功能,a做的事情和b做的事情没有关系,但是这个
            俩个功能都属于对应的一个系统的模块,那么我们如何去区分呢。这个时候为了更加方便的开发以及管
            理,就产生了分支。a在对应的登录的分支上做事情。b在对应的用户渲染的分支上做事,这个时候管理
            和对应的提交就更加简单了。(分支是多人开发的核心)

            主分支 master

            分支命名规范

                git 分支分为集成分支、功能分支和修复分支,分别命名为 master、feature 和 fix,均为单数。不可使
                用 features、future、hotfixes、hotfixs 等错误名称。
  •    master(主分支,永远是可用的稳定版本,不能直接在该分支上开发)
  •    develop(开发主分支,所有新功能以这个分支来创建自己的开发分支,该分支只做合并操作,不
                能直接在该分支上进行开发)
  •     master_check(未上线前的开发分支,该分支只做只合并操作,不能直接在该分支上开发,前期
                开发完成后将feature分支合并到此分支)
  •     online(线上分支,由发版人员确认测试没问题后,将online_check分支合并到此分支)
  •     online_check(开发主分支,所有新功能以这个分支来创建自己的开发分支,该分支只做只合并操
                作,不能直接在该分支上开发)
  •    feature-xxx(功能开发分支,在develop上创建分支,以自己开发功能模块命名,功能测试正常后
                合并到develop分支,开发完成后合并到online_check分支上)
  •     fix-xxx(修改bug分支,在master分支上创建,修复完成后合并到 online_check)

            注意事项:

  •    一个分支尽量开发一个功能模块,不要多个功能模块在一个分支上开发。
  •    feature 分支在申请合并之前,最好是先 pull 一下master_check分支下来,看一下有没有冲突,
                如果有就先解决冲突后再申请合并。

            分支查看 git branch

                
git branch

 

 

            开辟分支(同级创建)

                
git branch 分支名  

 

            切换分支

                
git checkout 分支名

 

            分支删除(不能处在本身的分支里面删除自己)

               
                git branch -d 分支名
                git branch -D 分支名 #强制删除      

 

            分支的合并(会产生新分支)和衍和 (将有差别的内容放入对应的分支中)

                将对应的分支合并给当前分支 进入当前分支合并到对应指定的分支
               
 git merge 分支名

 

 

                
git rebase 分支名

 

 

        远程仓库

            远程仓库相当于一个代码托管平台,常见的远程仓库 github(全球的开源项目 私服(收费的)),
            gitee(国内码云),基于github的一个平台gitlab(公司用 私服)
            gitee 国内代码托管平台(大型开源几乎没有)

            gitee

                gitee是代码托管平台,国内的基于git的一个代码托管平台。
                下载地址: https://gitee.com/

            使用流程

                先注册

 

 

                新建仓库

 

 

                克隆对应的项目

                   
 git clone 地址

 

                添加对应的地址(基于git 文件夹不是你clone下来的)

                    
                    git init
                    git remote add https://gitee.com/mr_wang_oo/react-project-library.git

 

                拉最新的代码

                    
git pull origin master

 

                进行对应的提交

                    
                    git add .
                    git commit . -m 第一次提交
                    git push -u origin master

 

                查看版本信息

                  
  git remote -V

 

                请求对应内容

                   
                   git fetch //不会合并
                    git pull //直接合并

 

        git冲突

            a提交了一次 index.html (版本号为1.0) b提交了一次(小于当前版本 不能进行提交的) index.html      

 

 

 
            b如果要提交将当前版本升级 获取最新版本
           
 git pull

 

            pull会进行合并 a对应index.html的操作和b是不一样的,不知道采用谁的 所以就会产生冲突,进行合
            并的话它会直接将对应的b写的内容全部干掉,只会留下a的。这个是不合适,所以你应该按照情况而定
            看需要留什么就留什么。
            所以就需要人工来进行干预(还是需要获取最新版本)
            需要出来一个副本 这个temp相当于一个副本 这个副本上有master的所有的内容
            
           git fetch origin master:temp
            git diff #比对
            git merge temp #再合并

 

posted @ 2022-09-03 17:59  一对7  阅读(34)  评论(0编辑  收藏  举报