版本管理系统--git(完整)

4.1 目录

  • 集中式和分布式版本管理
  • git常用命令
  • git log 分析与检索
  • git分支管理
  • 分支开发主干发布模式

4.2集中式VS分布式

       集中式

  •  ①代码的拉取提交需要联网,否则无法工作
  • ​ ②需要一台中央服务器(版本库)如果中央服务器出问题,所有人无法工作
  • ​ ③闭源集中式,增加项目资金的使用

       分布式

  • ①不联网也可以提交代码、查看历史、切换分支等等 
  • ②克隆远程仓库之后,每个人都是一个独立的完整版本库,容错率高
  • ③开源分布式,节省项目资金的使用

       参考:https://juejin.im/post/6844904179048120327

4.3 Git 常用命令

4.3.1 安装

         mac安装:brew install git

         配置用户名和邮箱: git config --global user.name "XXX"

                                     git config --global user.emali "XXX"

        查看全局配置:git config -l   

4.3.2 初始化git,提交一个文件,并修改后重新提交      

        初始化一个Git仓库,使用git init命令。     -->> 会生成.git 文件

        添加文件到Git仓库,分两步:

                1. 使用命令git add <file>,注意,可反复多次使用,添加多个文件;

                2. 使用命令git commit -m <message>,完成。

        

    git status命令可以让我们时刻掌握仓库当前的状态,上面的命令输出告诉我们,readme.txt被修改过了,但还没有准备提交的修改。

       git diff    查看改的内容

       

4.3.3  git做了什么?

       

       工作区--临时仓库--仓库

4.3.4 撤销修改

4.3.4.1 撤销本地工作区修改

        git checkout -- 文件名           (撤销工作区的文件修改)

        

4.3.4.2 撤销临时仓库修改

        git reset HEAD readme.md    (撤销临时仓库的文件修改,此时如果真的不想要这些内容,则还需要撤销工作区的文件修改,即进行上一步操作) 

       

4.3.4.3 撤销仓库修改 

        git reset --hard HEAD^        (撤销提交到仓库的文件修改)  ^代表上一个存档

        git log   查看提交日志 ,找出要撤回到的版本

        

4.4 GitHub服务器 --临时网络硬盘

4.4.1 GitHub配置

        

       

4.4.2 配置秘钥

        查看是否存在id_rsa 和 id_rsa.pub文件        

        

       如果没有存在SSH key ,则需要先生成一下

        ssh-keygen -t rsa -C "XXX@qq.com" 

        

4.4.3 新建一个项目

        

        

        新增项目成功,如图所示,对于第一次提交需要操作的命令,在新建的项目中有明确提示

       

4.4.4 将本地代码推送到远程仓库

              git remote add origin git@github.com:XXX  添加远程仓库   

         git remote add origin https://github.com/fanpl-sourse/study.git

              git push -u origin master 将本地代码上传到远端 (首次操作时,需要建立关联,所以要写-u origin master)

              推送完成后,远程仓库就有了本地提交的文件,如图

             

 4.4.5  多次提交合并到一个版本上

              git rebase -i 版本名:  合并几次提交到一次上

               

4.8  分支开发主干发布

              git branch <分支名> : 创建分支

              git checkout <分支名>:切换分支

              git checkout -b <分支名>:创建并切换分支 (合并了上面的两个步骤)

              

              git branch : 查看分支

              git merge <分支名> : (切换到master分支后,才能进行merge操作)把dev分支上的内容合并到master分支上

              git push : 提交到远端

            

            git branch -d <分支名> : 删除分支

学习网址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 

4.9 日常操作场景范例

4.9.1.我想基于master 分支 创建一个新的qa分支

  git checkout master

  git branch qa

  git checkout qa

4.9.2. 我对之前创建的分支不满意,需要删除 (不能在要删除的分支中进行操作)

  git branch -D qa   删除本地的qa 分支

  git push origin qa --delete 删除远程仓库的qa分支

4.9.3.  我在qa分支中进行了代码编辑或新增,需要提交到远程仓库

  git add .

  git commit -m 'xxxxx'

  git push origin HEAD:refs/for/qa

4.9.4.  同事修改了qa分支内容,我要获取最新的内容

   git fetch

   git rebase origin/qa  : 将远程内容合并到本地qa分支

4.9.5. 我需要把qa分支代码合并到master

   git checkout master

   //以下2步是保证可能存在master有更新的情况

   git fetch

   git rebase origin/master 

   

   git merge qa

   git add .

   //如果代码存在冲突或修改,就使用命令 git commit -m 'xxxxx'

   git commit --amend     提交当前内容,但是不产生新的commit ID, 使用上一次未submit 的 commit ID

   git push origin HEAD:refs/for/master

 

posted @ 2020-10-12 17:24  pretend_smile  阅读(152)  评论(0)    收藏  举报