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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ansible自动化运维工具

Ansible是一个基于Python开发的配置管理和应用部署工具&#xff0c;现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点&#xff0c;Pubbet和Saltstack能实现的功能&#xff0c;Ansible基本上都可以实现。 Ansible能批量配置、部署、管理上千台主机。比如以前需要…

CAN转ETHERCAT网关can协议是什么意思

大家好&#xff0c;今天要跟大家分享一款自主研发的通讯网关&#xff0c;JM-ECT-CAN。这款产品能够将各种CAN总线和ETHERCAT网络连接起来&#xff0c;实现高效的数据传输和通信。那么&#xff0c;这款通讯网关具体有哪些功能和特点呢&#xff1f;接下来&#xff0c;我们就一起来…

<el-date-picker>组件选择开始时间,结束时间自动延长30min

背景&#xff1a;选择开始时间&#xff0c;结束时间自动增加30分钟&#xff0c;结束时间也可重新选择&#xff0c;如图&#xff1a; <el-form-item label"预约开始时间" prop"value1"><el-date-pickersize"large"v-model"ruleForm…

SpringBoot2.5.6整合Elasticsearch7.12.1

SpringBoot2.5.6整合Elasticsearch7.12.1 下面将通过SpringBoot整合Elasticseach&#xff0c;SpringBoot的版本是2.5.6&#xff0c;Elasticsearch的版本是7.12.1。 SpringBoot整合Elasticsearch主要有三种方式&#xff0c;一种是通过elasticsearch-rest-high-level-client&am…

【MySQL】模具更新方案

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

简化Java单元测试数据

用EasyModeling简化Java单元测试 EasyModeling 是我在2021年圣诞假期期间开发的一个 Java 注解处理器&#xff0c;采用 Apache-2.0 开源协议。它可以帮助 Java 单元测试的编写者快速构造用于测试的数据模型实例&#xff0c;简化 Java 项目在单元测试中准备测试数据的工作&…

C++ ——STL容器【list】模拟实现

代码仓库&#xff1a; list模拟实现 list源码 数据结构——双向链表 文章目录 &#x1f347;1. 节点结构体&#x1f348;2. list成员&#x1f349;3. 迭代器模板&#x1f34a;4. 迭代器&#x1f34b;5. 插入删除操作&#x1f34c;5.1 insert & erase&#x1f34c;5.2 push_…

flask处理表单数据

flask处理表单数据 处理表单数据在任何 web 应用开发中都是一个常见的需求。在 Flask 中&#xff0c;你可以使用 request 对象来获取通过 HTTP 请求发送的数据。对于 POST 请求&#xff0c;可以通过 request.form 访问表单数据。例如&#xff1a; from flask import Flask, r…

电子鼻毕业论文

面向压埋探测的人体代谢气体识别方法的研究与应用 实现对非目标气体的检测 数据预处理 &#xff08;1a&#xff09;标准化 将采集到的数据先进行变换&#xff0c;统一数量级。其中&#xff0c;xij为第j个传感器的第i个采样值&#xff1b;xj为第 j 个气体传感器的所有采样值&…

Java课题笔记~Maven基础

2、Maven 基础 2.1 Maven安装与配置 下载安装 配置&#xff1a;修改安装目录/conf/settings.xml 本地仓库&#xff1a;存放的是下载的jar包 中央仓库&#xff1a;要从哪个网站去下载jar包 - 阿里云的仓库 2.2 创建Maven项目

计算机网络——学习笔记

付费版&#xff1a;直接在上面的CSDN资源下载 免费版&#xff1a;https://wwsk.lanzouk.com/ijkcj13tqmyb 有疑问或者错误的地方可以在评论区指出&#xff0c;我会尽快回复 示例图&#xff1a;

SOC FPGA之HPS模型设计(一)

目录 一、建立HPS硬件系统模型 1.1 GHRD 1.2 从0开始搭建HPS 1.2.1 FPGA Interfaces 1.2.1.1 General 1.2.1.2 AXI Bridge 1.2.1.3 FPGA-to-HPS SDRAM Interface 1.2.1.4 DMA Peripheral Request 1.2.1.5 Interrupts 1.2.1.6 EMAC ptp interface 1.2.2 Peripheral P…

[JAVAee]线程池

目录 线程池的作用 线程池的使用 线程池的创建方式 线程池的解析 ①Executors与ThreadPoolExecutor ②ThreadPoolExecutor线程池的构造方法 ③RejectedExecutionHandler线程池的拒绝策略 固定线程数量线程池的简单模拟实现 线程池的作用 对于线程的使用,可能会频繁的创建…

首批!棱镜七彩通过汽车云-汽车软件研发效能成熟度模型能力评估

2023年7月25-26日&#xff0c;由中国信息通信研究院、中国通信标准化协会联合主办的“2023年可信云大会”隆重召开。会上&#xff0c;在中国信息通信研究院云计算与大数据研究所副所长栗蔚的主持下&#xff0c;中国信通院发布了“2023年上半年可信云评估结果”&#xff0c;并由…

uniapp checkbox radio 样式修改

文章目录 通过查看代码&#xff0c;发现 before部分是设置样式的主要属性 我们要设置的话&#xff0c;就要设置checkbox::before的属性。 其中的content表示内容&#xff0c;比如内部的对勾 那么我们设置的时候&#xff0c;比如设置disabletrue的时候或者checkedtrue的时候&…

onnxruntime (C++/CUDA) 编译安装

一、克隆及编译 git clone --recursive https://github.com/Microsoft/onnxruntime cd onnxruntime/ git checkout v1.8.0如果克隆的时候报错&#xff1a; 执行以下&#xff1a; apt-get install gnutls-bin git config --global http.sslVerify false git config --global h…

Git初始化

查看git版本 git --version 设置Git的配置变量 方法&#xff1a; 修改全局文件&#xff08;用户主目录下.gitconfig&#xff09;修改系统文件&#xff08;如/etc/gitconfig&#xff09; 用户姓名和邮件地址 修改用户名和邮件地址 git config --global user.name "用…

《JeecgBoot系列》JeecgBoot(ant-design-vue)实现筛选框:支持下拉搜索+下拉多选+表字典(支持条件查询)功能

JeecgBoot(ant-design-vue)实现筛选框&#xff1a;支持下拉搜索下拉多选表字典(支持条件查询)功能 JSearchMultiSelectTag.vue源文件 一、需求介绍 在使用JeectBoot(ant-design-vue)设计表单时&#xff0c;需要实现下拉搜索下拉多选表字典(支持条件查询)。 但是系统目前有两…

PysparkNote006---pycharm加载spark环境

pycharm配置pyspark环境&#xff0c;本地执行pyspark代码 spark安装、添加环境变量不提了 File-Settings-Project-Project Structure-add content root添加如下两个路径 D:\code\spark\python\lib\py4j-0.10.7-src.zipD:\code\spark\python\lib\pyspark.zip 2023-07-26 阴 于…