Git分布式版本控制工具和GitHub(二)--Git指令入门

一.指令入门前的准备

1.Git全局设置

 2.获取Git仓库

 

 

例如:将我GitHub上的first_resp仓库克隆到本地。

 点击进入first_rep,后面本地仓库操作的学习就是在这个界面右键打开Git Bash

3.工作区,暂存区,版本库概念

 注:如果空仓库就没有index文件

4.Git工作区中文件的状态

二.本地仓库操作相关的命令

//1.查看文件状态
git status//2.查看日志,也可以写成git-log
git log//3.将文件的修改加入暂存区
//格式:git add 单个文件名|通配符
git add User.java//将User.java文件添加到暂存区
git add *//添加所有文件到暂存区//4.将缓存区的文件提交到版本库
git commit -m "init resp" User.java//-m后面带的注释内容///5.将暂存区的文件取消暂存或切换到指定版本
git reset User.java//将暂存区的User.java取消暂存
git reset --hard 090950e68ecc099c5c021194d14b18d713880b75
//回溯回之前的版本,hard后面长长的那串是版本号,怎么知道呢?
//输入git log然后commit后面就是版本号//6.查看已经删除的提交记录
git reflog

 注:
git status--查询状态
创建一个文件,未使用git add,则为未跟踪状态,说白了就是git没有去管理这个文件。
使用git add后就会变成已暂存状态。
使用git commit,就会变为未修改状态,然后修改文件后就会变为已修改状态
具体参照前面一种Git工作区中文件的状态

三.远程仓库操作相关的命令

//1.查看远程仓库,它会列出每一个远程服务器的简写。//如果已经克隆了远程仓库,那么至少应该能看到origin,
//这是Git克隆的远程仓库服务器的简称(默认名字)
git remote
//输入下面这行命令就会显示详细信息,即服务器的http地址
git remote -v//2.添加一个新的远程仓库,同时指定一个可以引用的简写
git remote add <shortname><url>//3.克隆远程仓库到本地
//如果你想获得一份已经存在了的Git远程仓库的拷贝,这是就要用到git clone命令。
//Git克隆的是该Git仓库服务器上的几乎所有数据(包括日志信息,历史记录等)
//格式:git clone[url]
git clone https://github.com/Flying-pig-z/first_rep//4.将本地仓库内容推送到远程仓库的指定分支中
//格式:git push [remote-name][branch-name]
//remote-name是什么:就是前面的origin(远程仓库的别名),branch-name:分支的名称
//只有提交到本地仓库,才能推送到远程仓库,顺序不能搞反[add->commit->push]
git push origin master
//推送到远程的主分支//5.从远程仓库拉取并合并,多人协作时使用
//格式:git pull[short-name][branch-name]
git pull origin master
//还有git fetch,差别是这个指令没有合并

重中之重:注意顺序add->commit->push,只有push后才上传到远程仓库

注:
【1】在使用git push命令时候报错:
fatal: unable to access 'https://github.com/.......': OpenSSL SSL_read: Connection was reset, errno 10054
那么直接执行一次git config --global http.sslVerify "false"命令来取消ssl解决问题

【2】git push第一次要使用要身份验证,你会发现你用户名和密码输对了还是报错,
解决方案:
Git提交时报错Logon failed, use ctrl+c to cancel basic credential prompt.. - 简书

【3】注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal:refusing to merge unrelated histories)
解决此问题可以在git pull命令后加入参数--allow-unrelated-histories

 

四.分支操作的命令

分支操作的概念

分支是Git使用过程中非常重要的概念。使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。同一个仓库可以有多个分支,各个分支相互独立,互不干扰。
通过git init属性创建本地仓库时默认会创建一个master分支。

下面介绍分支的相关命令

//1.查看分支
git branch//列出所有本地分支
git branch -r//列出所有远程分支
git branch -a//列出所有本地分支和远程分支//2.创建分支
//格式:git branch[name]
git branch newBranch//3.切换分支
//格式:git checkout [name]
git checkout newBranch//4.推送至远程仓库分支
//格式:git push[shortName][name]
//shortName就是远程仓库的别名,也就是origin
git push origin newBranch//5.分支合并,把不同分支的文件合并到一起
//格式:git merge[name]
git merge b3
//将b3分支合并到现在所在的分支
//使用这个命令会进入日志编辑模式,按i编辑,按esc退出//6.删除分支
git branch -d newBranch//删除分支时,需要做各种检查
git branch -D b1//不做任何检查,强制删除

注:
分支的使用:
【1】比如我们在本地文件夹中创建文件666.txt,然后git add 666.txt,该文件就从本地的工作区进入到本地暂存区,然后git commit 666.txt,这样该文件就从本地的暂存区进入到了本地的仓库的某个分支(即你当前操作的分支)。
【2】这时你切换到别的分支,比如你commit的时候是在master分支中操作的,你用git checkout newBranch切换到newBranch分支(前提是你之前有创建过该分支),然后你就会发现在本地仓库中的666.txt文件消失了,只有重新切换为master分支才重新出现。
【3】然后你再git push original master,就是将master分支上传,你就会发现此时GitHub仓库中的master分支更新多了个666.txt,而newBranch分支没有。
以上就是分支的使用。由此我们可以看到,通过分支,程序员的合作开发可以做到相互独立,互不干扰。


解决合并冲突:
合并分支是将两个分支相同的文件保留,不同的文件添加进来。
当两个分支上对同一个文件进行不同的修改,然后当合并分支的时候就会产生冲突。
例如同时修改了同一个文件的同一行,然后再合并时就会报错,要求我们解决冲突完才能提交结果。

 

例:
Master分支下的b1.txt:

b1 branch
在Master分支下添加的内容...
b1分支下的b1.txt:
b1 branch
在b1分支下添加的内容...
合并后:

合并后的文件,可以发现文件合并后有问题,并且已经标出。


这就需要手动解决冲突,解决冲突的步骤如下:
1.处理文件中冲突的地方
2.将解决完冲突的文件加入暂存区(git add b1.txt)
【告诉它我们已经解决了冲突】
3.提交到仓库(git commit -m "手动处理文件合并问题" b1.txt -i)
【后面要有-i参数,不然会报错】

五.标签操作的命令

Git中的标签,代表某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态。比较有代表的是人们会使用这个功能来标记发布结点(v1.0,v1.2等)【v是version】。

注:你什么时候提交标签,那个标签就是代表那一时刻的状态。例如,我们在第一次修改前可以创建标签为v1.0,第一次修改后可以创建标签为v2.0,第二次修改后可以创建标签为v3.0。
那么v1.0可以表示第一次修改前的状态,v2.0可以表示第一次修改后到第二次修改前的状态,v3.0可以表示第三次修改后的状态。


标签可以当做是版本的名字,我觉得标签更好的叫法是版本。

//列出已有的标签
git tag//创建标签
//格式:git tag [name]
git tag v0.1//将标签推送至远程仓库
//格式:git push [shortName][name]
git push origin v0.1//检出标签,其实就是把我们当初那个标签的状态下载下来,
//这样的话我们就能拿到当时状态的代码
//格式:git checkout -b [branch][name]
git checkout -b master v0.1

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

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

相关文章

Reinforcement-Learning

文章目录 Reinforcement-Learning1. RL方法分类汇总&#xff1a;2. Q-Learning3. SARSA算法4. SARSA&#xff08;λ&#xff09; Reinforcement-Learning 1. RL方法分类汇总&#xff1a; &#xff08;1&#xff09;不理解环境&#xff08;Model-Free RL&#xff09;&#xff…

【【51单片机的红外遥控】】

红外遥控&#xff0c;完全把控 红外遥控 利用红外光进行通信的设备&#xff0c;由红外LED将调制后的信号发出&#xff0c;再由专门的红外接收头进行解调输出 通信方式&#xff1a;单工 异步 红外LED波长&#xff1a;940nm 通信协议标准&#xff1a;NEC标准 用那种一体化红红外…

【MySQL】模具数据转移处理

系列文章 C#底层库–MySQLBuilder脚本构建类&#xff08;select、insert、update、in、带条件的SQL自动生成&#xff09; 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/129179216 C#底层库–MySQL数据库操作辅助类&#xff08;推荐阅读&#xff0…

SQL注入之布尔盲注

SQL注入之布尔盲注 一、布尔盲注介绍二、布尔盲注的特性三、布尔盲注流程3.1、确定注入点3.2、判断数据库的版本3.3、判断数据库的长度3.4、猜解当前数据库名称&#xff08;本步骤需要重复&#xff09;3.5、猜解数据表的数量3.6、猜解第一个数据表名称的长度3.7、猜解第一个数据…

初识Java - 概念与准备

本笔记参考自&#xff1a; 《On Java 中文版》 目录 写在第一行 Java的迭代与发展 Java的迭代 Java的参考文档 对象的概念 抽象 接口 访问权限 复用实现 继承 基类和子类 A是B和A像B 多态 单根层次结构 集合 参数化类型 对象的创建和生命周期 写在第一行 作为一…

从SQL注入绕过最新安全狗WAF中学习fuzz

前言 SQL注入并不是很精通&#xff0c;通过实战绕过WAF来进行加强SQL注入能力&#xff0c;希望对正在学习的师傅能有一丝帮助。 安装 安装前言 我是本地搭建的环境进行测试的 环境是windows11phpstudy2018sqli-labs phpstudy的安装我不再复述&#xff0c;这里简单说一下安全…

PDF文件忘记密码,怎么办?

PDF文件设置密码分为打开密码和限制密码&#xff0c;忘记了密码分别如何解密PDF密码&#xff1f; 如果是限制编辑密码忘记了&#xff0c;我们可以试着将PDF文件转换成其他格式来避开限制编辑&#xff0c;然后重新将文件转换回PDF格式就可以了。 如果因为转换之后导致文件格式…

【100天精通python】Day20:文件及目录操作_os模块和os.psth模块, 文件路径拼接,目录操作

目录 专栏导读 1 文件的目录操作 os模块的一些操作目录函数​编辑 os.path 模块的操作目录函数 2 相对路径和绝对路径 3 路径拼接 4 判断目录是否存在 5 创建目录、删除目录、遍历目录 专栏导读 专栏订阅地址&#xff1a;https://blog.csdn.net/qq_35831906/category_12…

Day03-作业(AxiosElementUI)

作业1&#xff1a; 根据需求完成如下页面数据列表展示 需求&#xff1a;Vue挂载完成后,通过axios发送异步请求到服务端,获取学生列表数据,并通过Vue展示在页面上 获取数据url&#xff1a;http://yapi.smart-xwork.cn/mock/169327/student 素材&#xff1a; <!DOCTYPE html…

springboot2实现图片文件上传与mysql存储路径并回显

环境介绍 技术栈 springbootmybatismysql 软件 版本 mysql 8 IDEA IntelliJ IDEA 2022.2.1 JDK 1.8 Spring Boot 2.7.13 mybatis 2.3.1 springboot是基于spring 4.0&#xff0c;springboot2是基于spring5.0,springboot2由pivotal公司在2018发布,这个框架主要用来…

螺旋矩阵 II——力扣59

文章目录 题目描述法一 模拟 题目描述 法一 模拟 初始化一个二维向量&#xff0c;名为matrix&#xff0c;它有n行和n列。向量的每个元素都是一个整数&#xff0c;初始化为0。初始化二维向量的语法如下&#xff1a;vector<vector<int>> matrix(n, vector<int>…

WPS本地镜像化在线文档操作以及样例

一个客户项目有引进在线文档操作需求&#xff0c;让我这边做一个demo调研下&#xff0c;给我的对接文档里有相关方法的说明&#xff0c;照着对接即可。但在真正对接过程中还是踩过不少坑&#xff0c;这儿对之前的对接工作做个记录。 按照习惯先来一个效果&#xff1a; Demo下载…

【phaser微信抖音小游戏开发002】hello world!

执行效果&#xff1a; 将以下代码文本内容&#xff0c;放入到game.js中即可。目录结构如下图 import ./js/libs/weapp-adapter import ./js/libs/symbolGameGlobal.window.scrollTo () > { };//防止真机出错 import Phaser from ./js/phaser//引入Phaservar {windowWidth, …

vue项目环境 搭建

1、安装nodejs 2、安装vue-cli, npm i -g vue/cli-init 3、初始化项目 vue init webpack test 4、运行 cd test npm run dev

无人机影像配准并发布(共线方程)

无人机影像 DEM 计算四个角点坐标&#xff08;刚性变换&#xff09; 像空间坐标&#xff08;x,y,-f&#xff09; 像空间坐标畸变纠正 deltax,deltay 已知(x,y)&#xff0c;求解(X,Y, Z)或者(Lat,Lon) 这里的Z是DEM上获取的坐标和Zs为相机坐标的高程&#xff0c;如果均为已…

应用无线鼠标中的2.4GHz无线收发芯片

无线键盘和无线鼠标作为现代办公环境中常见的工具&#xff0c;为我们的工作带来了便利。无线键盘和无线鼠标的工作原理都是基于无线技术实现的&#xff0c;其中常见的是2.4GHz无线技术。让我们一起来详细了解一下它们的工作原理。 无线鼠标的原理非常简单,鼠标部分工作与传统鼠…

html富文本编辑器

接了个单子&#xff0c;需要添加一个文章模块&#xff0c;一看用到的技术这么老&#xff0c;人傻了&#xff0c;纯html css js 。 在普通页面中 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"…

为Win12做准备?微软Win11 23H2将集成AI助手:GPT4免费用

微软日前确认今年4季度推出Win11 23H2&#xff0c;这是Win11第二个年度更新。 Win11 23H2具体有哪些功能升级&#xff0c;现在还不好说&#xff0c;但它会集成微软的Copilot&#xff0c;它很容易让人想到多年前的“曲别针”助手&#xff0c;但这次是AI技术加持的&#xff0c;Co…

一些高频的C++ cache line面试

C那些事之False Sharing与Cache line 最近看到一段代码&#xff0c;手动做的对齐&#xff0c;于是研究一下不对齐又会带来什么影响&#xff1f; template <typename T> class AtomicWithPadding {private:static constexpr int kCacheLineSize 64;uint8_t padding_befor…

牛客网Verilog刷题——VL46

牛客网Verilog刷题——VL46 题目解析答案 题目 根据题目提供的双口RAM代码和接口描述&#xff0c;实现同步FIFO&#xff0c;要求FIFO位宽和深度参数化可配置。电路的接口如下图所示。   双口RAM端口说明&#xff1a; 同步FIFO端口说明&#xff1a; 双口RAM代码如下&#xff…