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. TF-VAEGAN:添加潜在嵌入(Latent Embedding)的VAEGAN处理零样本学习

    前面介绍了将VAE+GAN解决零样本学习的方法:f-VAEGAN-D2,这里继续讨论引入生成模型处理零样本学习(Zero-shot Learning, ZSL)问题.论文"Latent Em ...

  2. PHP的数据对象PDO

    PHP的数据对象PDO 一.什么是PDO 手册说:PHP 数据对象 (PHP Data Object) 扩展为PHP访问数据库定义了一个轻量级的一致接口.实现 PDO 接口的每个数据库驱动可以公开具体 ...

  3. .NET 云原生架构师训练营(模块二 基础巩固 HTTP管道与中间件)--学习笔记

    2.3.2 Web API -- HTTP管道与中间件 管道 中间件 ASP.NET Core 中间件:https://docs.microsoft.com/zh-cn/aspnet/core/fun ...

  4. ArrayList中的遍历删除

    ArrayList 中的遍历删除 在代码编写过程中经常会遇到这样的要求:遍历一个线性表,要求只遍历一遍(时间复杂度\(O(n)\)),删除符合指定条件的元素,且要求空间复杂度 \(O(1)\). 例如 ...

  5. Java21 + SpringBoot3使用Spring Security时如何在子线程中获取到认证信息

    目录 前言 原因分析 解决方案 方案1:手动设置线程中的认证信息 方案2:使用DelegatingSecurityContextRunnable创建线程 方案3:修改Spring Security安全 ...

  6. google recaptcha 谷歌人机身份验证超详细使用教程,前端/后端集成说明

    壹 ❀ 引 在日常页面交互中,验证码使用是极为频繁的,登录注册验证,非机器人操作验证等等,它遍布于每一个网站.说到验证码实现,Goole Recaptcha是一个非常不错的选择,那么希望通过本文的使用 ...

  7. Ubuntu 22.04 Samba 安装和配置

    安装 安装 sudo apt install samba 检查服务状态 systemctl status smbd --no-pager -l 检查是否启用(开机自启动) systemctl is-e ...

  8. Laravel入坑指南(11)——列队

    很高兴,我们来到了Laravel入坑指南的第11篇.这一系列的文章已经接近尾声了,在这一节里面,我们一起讨论列队的用法. 列队,顾名思义,将需要处理的任务一个一个排好队,等待处理程序来处理.这机的列队 ...

  9. BUU PWN RIP1 RET2CODE WRITEUP

    1.下载附件后,运行是一个输入程序,IDA分析main函数,gets可溢出. F5伪代码如下: int __cdecl main(int argc, const char **argv, const ...

  10. 3D环饼图

    // <div class="AnalysisAccCom">         <first-title title="分析对象统计"> ...