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. Unity框架中的核心类

    组件:Component 在Unity中,所有的游戏对象都可以挂载组件.组件控制着游戏对象的行为和外观,例如渲染.动画.碰撞检测等. 而Component就是组件的基类,提供了一些通用的方法和属性,例 ...

  2. ch583/ch582/ch573/ch571 central(主机)程序

    本程序是在CH582m上运行的, 一.主从连接 主机这里可以根据从机的MAC地址进行连接.static uint8_t PeerAddrDef[B_ADDR_LEN] = {0x02, 0x02, 0 ...

  3. Java - CodeForces - 266A

    题目: 桌子上有n块石头排成一行,每一块都可以是红色.绿色或蓝色.计算从表中取出的石头的最小数量,以便相邻的任何两块石头具有不同的颜色.如果一排石头之间没有其他石头,则认为它们相邻. 输入: 第一行包 ...

  4. [刺客伍六七&黑客] 魔刀千刃evilblade的使用手册与开源

    0x00 前言 2023.8.15 夜里 非常欢迎使用我的魔刀千刃,并且欢迎各位师傅对我的开源代码进行指导! -–Offense without defense, unparalleled in th ...

  5. NC26257 小雨坐地铁

    题目链接 题目 题目描述 小雨所在的城市一共有 \(m\) 条地铁线,分别标号为 1 号线,2 号线,--,m 号线.整个城市一共有 \(n\) 个车站,编号为 \(1 \sim n\) .其中坐 i ...

  6. 【Unity3D】相机跟随

    1 前言 ​ 相机跟随是相机指始终跟随特定游戏对象,有以下 2 种跟随效果: 位置跟随:相机指向目标游戏对象的向量始终不变 位置和姿态跟随:相机在目标游戏对象的坐标系下的坐标和朝向始终不变 ​ 实现相 ...

  7. 【Android 逆向】【攻防世界】easy-apk

    apk 安装到手机,随便输入点内容,提示错误 2. apk 拖入到jadx中看看 public class MainActivity extends AppCompatActivity { /* JA ...

  8. OpenResty中如何实现,按QPS、时间范围、来源IP进行限流

    OpenResty是一个基于Nginx与Lua的高性能Web平台,它通过LuaJIT在Nginx中运行高效的Lua脚本和模块,可以用来处理复杂的网络请求,并且支持各种流量控制和限制的功能. 近期研究在 ...

  9. Alpine安装gcc g++ make编译环境

    apk add gcc g++ make cmake gfortran libffi-dev openssl-dev libtool

  10. React 组件懒加载

    只有不断学习和成长,才能适应这个快速变化的世界. 1. 懒加载 1.1 React 懒加载 React 中懒加载 Lazy 与 Suspense 需要搭配使用. React.lazy 定义: Reac ...