Git很简单--图解攻略

Git

  • Git 是目前世界上最先进的分布式版本控制系统(没有之一)

作用

  • 源代码管理

为什么要进行源代码管理?

  • 方便多人协同开发
  • 方便版本控制

Git管理源代码特点

  • 1.Git是分布式管理.服务器和客户端都有版本控制能力,都能进行代码的提交、合并、.

  •  

2.Git会在根目录下创建一个.git隐藏文件夹,作为本地代码仓库

Git操作流程图解

工作区暂存区和仓库区

 

工作区

  • 对于添加修改删除文件的操作,都发生在工作区中

暂存区

  • 暂存区指将工作区中的操作完成小阶段的存储,是版本库的一部分

仓库区

  • 仓库区表示个人开发的一个小阶段的完成
    • 仓库区中记录的各版本是可以查看并回退的
    • 但是在暂存区的版本一旦提交就再也没有了

 

Git单人本地仓库操作

 

      1 .安装git

       sudo apt-get install git

  • 2.查看git安装结果

      git
    
  • 3.创建项目

    • 在桌面创建test文件夹,表示是工作项目

        Desktop/test/
      
  • 4.创建本地仓库

    • 进入到test,并创建本地仓库.git
    • 新创建的本地仓库.git是个空仓库

        cd Desktop/test/git init

       5.配置个人信息

    git config user.name '张三'git config user.email 'zhangsan@163.com'

    默认不配置的话,会使用全局配置里面的用户名和邮箱 全局git配置文件路径:~/.gitconfig

      6.新建py文件

  •  在项目文件test里面创建login.py文件,用于版本控制演示

7.查看文件状态

  • 红色表示新建文件或者新修改的文件,都在工作区.
  • 绿色表示文件在暂存区
  • 新建的login.py文件在工作区,需要添加到暂存区并提交到仓库区

    git status
  • 8.将工作区文件添加到暂存区
  •   # 添加项目中所有文件git add .或者# 添加指定文件git add login.py
  • 9.将暂存区文件提交到仓库区

    • commit会生成一条版本记录
    • -m后面是版本描述信息

      git commit -m '版本描述'

10.接下来就可以在login.py文件中编辑代码

  • 代码编辑完成后即可进行addcommit操作
  • 提示:添加和提交合并命令

      git commit -am "版本描述"

11.查看历史版本

  git log或者git reflog

git reflog 可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录,git log 则不能察看已经删除了的commit记录

12.回退版本

  • 方案一:

    • HEAD表示当前最新版本
    • HEAD^表示当前最新版本的前一个版本
    • HEAD^^表示当前最新版本的前两个版本,以此类推...
    • HEAD~1表示当前最新版本的前一个版本
    • HEAD~10表示当前最新版本的前10个版本,以此类推...

      git reset --hard HEAD^

 

方案二:当版本非常多时可选择的方案

  • 通过每个版本的版本号回退到指定版本

      git reset --hard 版本号

13.撤销修改

  • 只能撤销工作区、暂存区的代码,不能撤销仓库区的代码
  • 撤销仓库区的代码就相当于回退版本操作

    • 撤销工作区代码

      • 新加代码num3 = 30,不add到暂存区,保留在工作区

        git checkout 文件名

 

撤销暂存区代码

  • 新加代码num3 = 30,并add到暂存区

    # 第一步:将暂存区代码撤销到工作区
    git reset HEAD  文件名
    # 第二步:撤销工作区代码
    git checkout 文件名

14.对比版本

  • 对比版本库与工作区

    • 新加代码num3 = 30,不add到暂存区,保留在工作区
    • git diff HEAD -- login.py

对比版本库

  • 新加代码num3 = 30,并add到暂存区
  • git diff HEAD HEAD^ -- login.py

15.删除文件:删除文件分为确定删除和误删

  • 在项目中新建test.py文件,并添加和提交到仓库

    • 确定删除处理:

        # 删除文件rm 文件名# git确定删除文件,对比添加文件git add git rm 文件名# 删除后记录删除操作版本git commit -m '删除描述'
    • 误删处理:撤销修改即可

        # 删除文件rm 文件名# git撤销修改git checkout -- 文件名

      Git远程仓库Github

      • 要使用git命令操作仓库,需要进入到仓库内部
      • 要同步服务器代码就执行:git pull
      • 本地仓库记录版本就执行:git commit -am '版本描述'
      • 推送代码到服务器就执行:git push
      • 编辑代码前要先pull,编辑完再commit,最后推送是push

      代码冲突

      • 提示:多人协同开发时,避免不了会出现代码冲突的情况
      • 原因:多人同时修改了同一个文件
      • 危害:会影响正常的开发进度
      • 注意:一旦出现代码冲突,必须先解决再做后续开发
        • 3.解决冲突

          • 原则:谁冲突谁解决,并且一定要协商解决
          • 方案:保留所有代码 或者 保留某一人代码
          • 解决完冲突代码后,依然需要addcommitpush

          标签

          • 当某一个大版本完成之后,需要打一个标签
          • 作用:

            • 记录大版本
            • 备份大版本代码

          补充:删除本地和远程标签

            # 删除本地标签git tag -d 标签名# 删除远程仓库标签git push origin --delete tag 标签名
        • 分支

          • 作用:
            • 区分生产环境代码以及开发环境代码
            • 研究新的功能或者攻关难题
            • 解决线上bug
          • 特点:
            • 项目开发中公用分支包括master、dev
            • 分支master是默认分支,用于发布,当需要发布时将dev分支合并到master分支
            • 分支dev是用于开发的分支,开发完阶段性的代码后,需要合并到master分支

转载于:https://www.cnblogs.com/zqlboke/p/9079936.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/250247.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css --- 使用scss生成常用的基本css样式

"工具样式"的概念和 SASS(SCSS) 在webpack中使用sass 安装sass和sass-loader $ npm i sass sass-loader由于使用了脚手架,安装完毕后重启前端即可 样式重置 其实就是样式的初始化 // reset* {box-sizing: border-box; // 以边框为准. css3盒模型outline: none;…

vc/vs开发的应用程序添加dump崩溃日志转

原贴地址:https://blog.csdn.net/wangkui1331/article/details/78029940 vc/vs开发的应用程序出现崩溃的时候,由于没有任何记录,导致开发人员很难追踪,但是添加dump文件后,就可以免除这些烦恼 1.添加方法 (…

51 nod 1127最短的包含字符串(尺取法)

1127 最短的包含字符串 收藏关注给出一个字符串,求该字符串的一个子串S,S包含A-Z中的全部字母,并且S是所有符合条件的子串中最短的,输出S的长度。如果给出的字符串中并不包括A-Z中的全部字母,则输出No Solution。Input…

Java --- 基础学习Ⅰ

第一章 开发前言 位、字节 位(bit): 一个数字0或一个数字1,代表一位 字节(Byte): 每逢8位是一个字节,这时数据存储的最小单位 1 Byte 8 bit 1 KB 1024 Byte 1 MB 1024 KB 1 GB 1024 MB 1 TB 1024 GB 1 PB 1024 TB MS-DOS(Microsoft Disk Operating System) 第二章 Ja…

JSON 数据重复 出现$ref

JSONArray 类型 如果我们往里面add数据的时候 如果数据相同,那么就会被替换成 $ref: 也就是被简化了 因为数据一样所直接 指向上一条数据 循环引用:当一个对象包含另一个对象时,fastjson就会把该对象解析成引用。引用是通过$ref标示的&am…

Java --- 基础学习Ⅱ

继承 继承概述 下面有一个学生类 public class Student{private String name;private int age;public void study(){System.out.println("努力学习了");}public String getName() {return name;}public void setName(String name) {this.name name;}public int g…

urllib库

python内置的最基本的HTTP请求库,有以下四个模块: urllib.request  请求模块 urllib.error    异常处理模块 urllib.parse   url解析模块 urllib.robotparser robots.txt解析模块 urllib.request请求模块: urllib.request.urlopen(u…

layer的删除询问框的使用

删除是个很需要谨慎的操作 我们需要进行确认 对了删除一般使用ajax操作 因为如果同url请求 处理 再返回 会有空白页 1.js自带的样式 <button type"button" data-toggle"tooltip" title"删除" class"btn btn-danger pull-right btn-xs&qu…

文献笔记(八)

一、基本信息 标题&#xff1a;MySQL数据库在自动测试系统中的应用 时间&#xff1a;2017 出版源&#xff1a;宁夏职业技术学院 领域分类&#xff1a;无线互联科技 二、研究背景 问题定义&#xff1a;文章介绍了MySQL数据库的特点&#xff0c;结合自动测试系统运行中的实际&…

Java --- 常用API

常用API 方法重载: 方法名相同,方法接收的参数不同 static: 修饰的类,可以直接使用类名进行调用 方法名说明public static abs(int a)返回参数的绝对值public static double ceil(double a)返回大于或等于public static double floor(double a)返回小于或等于参数的最大doubl…

9. 弹出键盘挡住input

1.) react 中 <input className"inp3" placeholder"密码" type"password" onChange{this.changepassword.bind(this)} onFocus{this.FocusFN.bind(this)} value{this.state.paswword}/> FocusFN(){ setTimeout(()>{ let pannel docume…

Linux初学时的一些常用命令(4)

1. 磁盘 查看当前磁盘使用情况 df -h查看某个文件大小 du -sh 文件名 如果不输入文件名&#xff0c;默认是当前目录的所有文件之和&#xff0c;即当前目录大小 2. 系统内存 free参数详解&#xff1a;https://blog.csdn.net/loongshawn/article/details/51758116 3. CPU CPU 使用…

小程序 --- 项目小练手Ⅰ

1. 接口文档 2. 帮助文档 小程序开发文档 mdn 阿里巴巴字体 iconfont 3. 项目搭建 3.1 新建小程序项目 填入自己的appid: wxdbf2b5e8c2f521a3 3.2 文件结构 一级目录 目录名作用styles存放公共样式components存放组件lib存放第三方库utils自己的帮助库request自己的接口…

vue aixos请求json

this.axios.get(/static/json/jinxiangZhe.json).then(res>{console.log(res);}).catch( error > {console.log(error,error)}) 转载于:https://www.cnblogs.com/SunShineM/p/9087734.html

小程序 --- Tab组件的封装

1. Tabs组件的封装 1.1 组件的引入 使用自定义的组件很简单,只需在使用组件的页面的配置文件.json文件中配置. // pages/goods_list/index.json {"usingComponents":{"Tabs": "../../components/Tabs/Tabs"} }然后再.wxml文件中使用即可 <…

爬虫之拉勾网职位获取

重点在于演示urllib.request.Request()请求中各项参数的 书写格式 譬如&#xff1a; url data headers...Demo演示&#xff08;POST请求&#xff09;:import urllib.requestimport urllib.parseimport json, jsonpath, csvurl "https://www.lagou.com/jobs/positionAjax.…

小程序 --- 点击放大功能、获取位置信息、文字样式省略、页面跳转(navigateTo)

1. 点击放大功能的实现 需求: 点击轮播图中的图片会实现放大预览的功能。首先有轮播图的样式如下 <!-- pages/goods_detail/index.wxml --> <!-- 轮播图 --> <view class"detail_swiper"><swiperautoplaycircularindicator-dots><swip…

Axure实现多用户注册验证

*****多用户登录验证***** 一、&#xff08;常规想法&#xff09;方法&#xff1a;工作量较大&#xff0c;做起来繁琐 1、当用户名和密码相同时怎么区分两者&#xff0c;使用冒号和括号来区分&#xff1a; eg. (admin:123456)(123456:demo)(zhang:san);由此得出前面是括号后面是…

前端插件网址

http://www.swiper.com.cn/转载于:https://www.cnblogs.com/luchuangao/p/9088057.html

python --- opencv部分学习

1. OpenCV 1.1 opencv概念 OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库可以运行在Linux、Windows、Android和Mac OS操作系统上它轻量级而且高效 – 有一系列C函数和少量 C 类构成同时提供了 Python、Ruby、MATLAB等语言的接口实现了图像处理和计算机视觉方面的很…