自我总结的git的使用
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
- git merge
- 建议
提交前先pull代码
推荐一个零声学院免费教程,个人觉得老师讲得不错,
分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容,点击立即学习:
服务器
音视频
dpdk
Linux内核
自我总结的git的使用的更多相关文章
- Git的使用和部署
Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). 什么是版本控制系统? 没有版本控制系统 有了版本控制系统 版本 文件名 用户 说明 日期 1 service.doc 张三 ...
- 使用Alipay代码源,构建自己的Docker镜像
1. alipay 镜像仓库 地址 (自行换成自己的阿里镜像云DockerHub地址) https://cr.console.aliyun.com/repository/ 2.alipay 代码云 地 ...
- 浅谈自我对git的初步认识
本学期我们新增了一门课程,那就是软件工程,不知道为什么,感觉有种莫名的高大上.哈哈!难道是这个名称太抽象了吗?这个问题我感觉到后来肯定就明白了. 第一次博客,感觉好紧张哦,嘿嘿!老师让我们谈谈对git ...
- 安装并学习git的基本使用;注册Github账号,并创建仓库,编辑自我介绍,并提交commit
安装.学习.注册Git成功,也创建了仓库和自我介绍. 但Git clone没有做,再打开Git网页一直出现错误,不理解.
- Git使用的自我总结
一.Git安装后打开Git bash,第一次使用 1.Git账号信息配置 2.用命令git clone从远程库克隆 会在克隆的项目下有一个隐藏的.git目录,这个目录是Git来跟踪管理版本库的,没事千 ...
- 《web全栈工程师的自我修养》读书笔记
有幸读了yuguo<web全栈工程师的自我修养>,颇有收获,故在此对读到的内容加以整理,方便指导,同时再回顾一遍书中的内容. 概览 整本书叙述的是作者的成长经历,通过经验的分享,给新人或者 ...
- GIT 配置管理
git版本控制开发流程小结笔记(一) 收藏 何良瑞Nyanko君 ...
- 学习Git的总结与体会
学习Git的总结 blog 第一次学习Git是完全按照廖雪峰老师的教程学习的,学的过程中基本上没有遇到什么问题,但是自己实际操作就问题不断了. 首先,还是按照惯例,来膜拜一下廖雪峰老师精简的教程知识吧 ...
- [git]用pelican搞一个自己的blog(已完成)
pelican Pelican Static Site Generator, Powered by Python:Pelican是python语言写的静态网站生成器.因为我一直打算用github pa ...
- Git.Framework 框架随手记-- 分享一个"比较垃圾"的项目
本文主要分享一个Git.Framework 开发的一个项目的部分源码,此项目代码"比较垃圾",所以请各位码农,码畜,码神,码圣勿喷!发此文只为记录工作问题以及分享问题! 一. 项目 ...
随机推荐
- AIX6.1修改时区/修改时间
环境 AIX6.1 修改时间 格式:date -n mmddHHMMYY #mm表示月分,dd表示日期,HH表示小时,MM表示分钟,YY表示年份. 例子:date -n 1204171622 #修 ...
- CSS概念与CSS选择器
CSS简述 CSS被称为级联样式表或者CSS样式表.CSS也是一种标记语言. CSS主要用于设置HTML页面中的: 1.文本内容(字体,大小,对齐方式等), 2.图片的外形(宽高,边框样式,边距等), ...
- 微软开测“Moment4”启动包:Win11 23H2要来了
近日,有用户在Win11最新的7月累积更新中发现,更新文件中已经开始出现了对"Moment4"的引用. 具体来说,在7月累积更新中,微软加入了"Microsoft-Win ...
- 从TF-IDF 到BM25, BM25+,一文彻底理解文本相关度
相关性描述的是⼀个⽂档和查询语句匹配的程度.我们从搜索引擎召回时,肯定希望召回相关性高的数据,那么如何来量化相关度呢. 首先,我们定义,一个文档doc,由多个词语 term 组成. 最早,通过最简单的 ...
- CH59X/CH58X/CH57X 片上flash的使用
以CH592F为例:在使用时先看手册对code和data区的划分 一.DataFlash的读写的操作 先看几个操作dataflash的API(读擦写): /** * @brief read Data- ...
- DNS反向解析
一:创建反向解析区 1.和创建正向解析区的步骤类似,选主要区域 这里设置的IP是192.168.1,一直点确定即可 2.指针记录即反向解析记录,记录ip对应的域名,是反向解析区最常用的记录 输入ip和 ...
- ASP.NET Core分布式项目实战(Consent Controller Get请求逻辑实现)--学习笔记
任务20:Consent Controller Get请求逻辑实现 接着上一节的思路,实现一下 ConsentController 根据流程图在构造函数注入 IClientStore,IResourc ...
- Python-单引号、双引号和三引号的作用和区别
(一).作用 1. 单引号:单引号内部为一串字符(str). 2. 双引号:双引号内部为一串字符,双引号内的字符串可以出现单引号(相当于双引号优先级更高),但不能嵌套双引号. 3. 三引号:用于换行输 ...
- [JVM] JVM的类加载机制
JVM的类加载 首先我们来看下Java虚拟机的类加载过程: 如上图. 当JVM需要用到某个类的时候,虚拟机会加载它的 .class 文件.加载了相关的字节码信息之后,会常见对应的 Class 对象,这 ...
- Eclipse安装配置、卸载教程(Windows版)
Eclipse是一个开放源代码的集成开发环境(IDE),最初由IBM公司开发,现在由Eclipse基金会负责维护.它是一个跨平台的工具,可以用于开发多种编程语言,如Java.C/C++.Python. ...