git是什么

git是一个分布式版本控制工具,github是代码托管平台。

git有什么用

  • 保存文件的所有修改记录

  • 使用版本号进行区分

  • 随时可浏览历史版本记录

  • 可还原到历史指定版本

  • 对比不同版本的文件差异

为什么要用git?

  • 多人协作开发一个大型项目

  • 每个人都在代码库下载代码,然后进行修改,把大家不同版本的代码合并上传到平台

  • 公司都会有自己的代码托管平台,github是开源的,免费学习,参与知名项目

  • 为协作开发而生的,公司都在使用,不得不学

要学什么?怎么用

基本概念

仓库

仓库分为远端仓库和本地仓库

远端仓库

  • git init --bare

本地仓库

  • git clone ...

协议

  • http

  • ssh

使用ssh公钥登录GIT服务器

生成公钥和私钥(ssh-keygen -t rsa)

安装openssh server(可省略)

复制公钥内容到远端服务器 .ssh/authorize_keys

git clone

  • git

设置用户名和密码

局部

使用git config user.name mark设置用户名

设置邮箱使用 git config user.email mark@qq.com

git config --local -l

全局

使用 git config --global user.name mark设置用户名

使用git config --global user.email goddragon@qq.com设置邮箱

git config -l

本地工作区

就是我们使用git init或 git clone 所在的路径

暂存区

使用 git add <源码文件>添加到暂存区

本地仓库

使用git commit . 添加到本地仓库

远程仓库

使用git push orgin master推送到远端服务器

版本号

通过 git log查看我们的提交记录·里面有我们的版本号

head

当前检出记录的符号引用

基本操作

  • 暂存(git add)

  • 提交(git commit)

  • 推送(git push)

  • 拉取(git fetch)

  • 拉取合并(git pull)

git fetch

git merge

  • 查看状态(git status)

  • 查看历史(git log)

git reflog

逆向操作

  • index -> workspace git (git restore -S 源码文件)

  • 本地仓库 -> index (git reset --soft)

  • 本地仓库 -> workspace(git reset --mixed)

  • 本地仓库 ->null(git reset --hard)

  • workspace ->null(git checout、git checkout --file、git checkout -f)

本地仓库整理操作

  • 整理上一次提交(git commit --amend)

  • 整理多次提交(git rebase -i h1 h2、左开右闭)

  • 没有人基于你的分支开发(从变基那个节点开始往后的所有节点的commit id都会变化、会引起其他人冲突)

分支操作

  • 查看分支(git branch)
  • 创建分支(git branch develop 创建、git chect out -b develop 创建并切换)
  • 合并分支(git rebase(不建议使用))
    • 从两个分支的共同祖先开始提取当前分支上的修改
    • 提取的提交应用到目标分支的最新提交的后面
    • 将当前分支只想目标分支的最新提交
    • 可能引发其他人基底发生改变
  • 删除分支
    • git branch -d develop
    • 删除远端 git push origin -d develop

*分支作用:独立变化互不依赖

解决冲突

  • 冲突产生原因 不同分支修改了同一文件
  • 解决原则
    • 不要影响其他人提交的功能
    • 协商解决
  • 解决
    • git merge

      • git add .
      • git commit . -i -m ".."
    • git rebase
      • git add . 标记解决
      • git rebase --continue
  • 建议

    提交前先pull代码

推荐一个零声学院免费教程,个人觉得老师讲得不错,

分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,

fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,

TCP/IP,协程,DPDK等技术内容,点击立即学习:

服务器

音视频

dpdk

Linux内核

自我总结的git的使用的更多相关文章

  1. Git的使用和部署

    Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). 什么是版本控制系统? 没有版本控制系统 有了版本控制系统 版本 文件名 用户 说明 日期 1 service.doc 张三 ...

  2. 使用Alipay代码源,构建自己的Docker镜像

    1. alipay 镜像仓库 地址 (自行换成自己的阿里镜像云DockerHub地址) https://cr.console.aliyun.com/repository/ 2.alipay 代码云 地 ...

  3. 浅谈自我对git的初步认识

    本学期我们新增了一门课程,那就是软件工程,不知道为什么,感觉有种莫名的高大上.哈哈!难道是这个名称太抽象了吗?这个问题我感觉到后来肯定就明白了. 第一次博客,感觉好紧张哦,嘿嘿!老师让我们谈谈对git ...

  4. 安装并学习git的基本使用;注册Github账号,并创建仓库,编辑自我介绍,并提交commit

    安装.学习.注册Git成功,也创建了仓库和自我介绍. 但Git clone没有做,再打开Git网页一直出现错误,不理解.

  5. Git使用的自我总结

    一.Git安装后打开Git bash,第一次使用 1.Git账号信息配置 2.用命令git clone从远程库克隆 会在克隆的项目下有一个隐藏的.git目录,这个目录是Git来跟踪管理版本库的,没事千 ...

  6. 《web全栈工程师的自我修养》读书笔记

    有幸读了yuguo<web全栈工程师的自我修养>,颇有收获,故在此对读到的内容加以整理,方便指导,同时再回顾一遍书中的内容. 概览 整本书叙述的是作者的成长经历,通过经验的分享,给新人或者 ...

  7. GIT 配置管理

    git版本控制开发流程小结笔记(一) 收藏                                                                     何良瑞Nyanko君 ...

  8. 学习Git的总结与体会

    学习Git的总结 blog 第一次学习Git是完全按照廖雪峰老师的教程学习的,学的过程中基本上没有遇到什么问题,但是自己实际操作就问题不断了. 首先,还是按照惯例,来膜拜一下廖雪峰老师精简的教程知识吧 ...

  9. [git]用pelican搞一个自己的blog(已完成)

    pelican Pelican Static Site Generator, Powered by Python:Pelican是python语言写的静态网站生成器.因为我一直打算用github pa ...

  10. Git.Framework 框架随手记-- 分享一个"比较垃圾"的项目

    本文主要分享一个Git.Framework 开发的一个项目的部分源码,此项目代码"比较垃圾",所以请各位码农,码畜,码神,码圣勿喷!发此文只为记录工作问题以及分享问题! 一. 项目 ...

随机推荐

  1. 使用symbolicatecrash工具符号化Crash日志

    对于打包上线的APP,或者打包测试的APP,出现了崩溃并不能方便的把手机链接到电脑使用XCode自动符号化,此时手动符号化就是重要的选项. 1.查找符号化工具symbolicatecrash find ...

  2. DELPHI IDE 代码智能提示

  3. Kubernetes 漫游:Controller Manager

    Controller Manager Controller Manager 是控制平面的一个重要组件,负责维护 Kubernetes 集群的整体状态. 流程: 在集群中 Controller Mana ...

  4. JS Leetcode 154. 寻找旋转排序数组中的最小值 II 题解分析

    壹 ❀ 引 早在10个月前,也就是去年,我记录了JS leetcode 寻找旋转排序数组中的最小值 题解分析,你不得不了解的二分法一题,那么这篇文章记录它的升级版,来自LeetCode154. 寻找旋 ...

  5. NC20313 [SDOI2008]仪仗队

    题目链接 题目 题目描述 作为体育委员,C君负责这次运动会仪仗队的训练. 仪仗队是由学生组成的N * N的方阵,为了保证队伍在行进中整齐划一,C君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队 ...

  6. STM32F407VET6 / BLACK_F407VE开发板间隔0.5秒不断重启

    有一块 STM32F407VET6 的故障开发板, 之前的问题是经常无法烧录, 必须reset之后才能连接, 具体查看这篇 STM32F407VET6烧录出现flash download failed ...

  7. Wireguard笔记(一) 节点安装配置和参数说明

    目录 Wireguard笔记(一) 节点安装配置和参数说明 Wireguard笔记(二) 命令行操作 Wireguard笔记(三) lan-to-lan子网穿透和多网段并存 简介 虚拟子网软件,类似于 ...

  8. 【Unity3D】绘制物体表面三角形网格

    1 仅绘制三角形网格 ​ 1)创建游戏对象 ​ 创建一个空对象,重命名为 Grid,并在其下添加需要绘制网格的对象,如下: ​ 场景显示如下: ​ 2)添加脚本组件 ​ GridController. ...

  9. SpringBoot+Shiro+LayUI权限管理系统项目-1.项目介绍

    1.项目介绍 本项目旨在打造一个基于RBAC架构模式的通用的.并不复杂但易用的权限管理系统.通过本项目可以较好的理解权限系统的常见业务同时学习掌握Springboot和Shiro等诸多技术点.需要的朋 ...

  10. Oracle开发人员守则

    以下为Oracle大师级语录: Oracle Database developers should follow is to do everything they can in SQL. What t ...