Git 命令行快速入门

前言

(1)新手个人建议使用TortoiseGit这类图形化界面来上手学习。
(2)如果一定需要用命令行进行操作,可以按照B站:程式与网页开发者必备技能!Git 和 GitHub 零基础快速上手,轻松掌握版本控制的要诀!视频教程来。
(3)上述视频教程讲解的非常好,我这里只是在该视频基础上稍微增加几条可能会使用到的命令。

Github操作

创建仓库

(1)创建仓库。

在这里插入图片描述

(2)输入仓库名称,然后创建。

在这里插入图片描述

查看仓库提交记录

(1)如果想在Github上查看仓库的提交信息,进行如下方法即可查看。

在这里插入图片描述

合并分支

(1)如果我们现在有多个分支,在会出现下图这样的情况。

在这里插入图片描述

(2)

在这里插入图片描述

(3)

在这里插入图片描述

(4)

在这里插入图片描述

(5)

在这里插入图片描述

(6)如果发现没有问题,进行合并

在这里插入图片描述

首次使用Git需要设置用户信息

(1)首次在电脑中使用Git,需要输入如下两条命令设置当前用户姓名用户邮箱
非首次使用Git的用户,不需要执行该操作。

# 设置用户名
git config --global user.name "myname"
# 设置用户邮箱
git config --global user.email "myemail"

在这里插入图片描述

常用命令介绍

初始化Git仓库

(1)执行如下操作进行初始化,最终会生成一个.git隐藏文件,用于跟踪版本,存储档案变更历史和备份记录。

# 初始化 Git 仓库
git init

在这里插入图片描述

查看仓库文件状态

(1)Git 仓库有四种状态:

  • Untracked(未追踪):该状态下,Git不会记录他们的内容变更和编辑历史。需要使用git add命令转换为下一个状态。
  • Tracked(已追踪):此时Git会追踪该文件,但文件内容与上一次提交时的内容相同。通俗来说,它们在上次提交后没有被修改过。需要使用git commit命令转换为下一个状态。
  • Staged(已暂存):这时会记录修改后的文件信息。需要使用git push命令转换为下一个状态。
  • Committed(已提交):此时本地仓库和远程仓库同步成功。
# 查看当前目录下文件状态
git status
# 以简短的格式显示当前目录下文件状态,推荐该命令
# ?? : 未追踪(Untracked)
# A : 已追踪,新增文件
# M : 已经被修改的文件,但是没有被暂存
# 
git status -s

追踪文件

(1)初始化仓库之后,Git 需要知道要追踪那些文件,因此可以使用如下命令进行追踪。

# git add : 追踪文件
# . : 追踪当前目录下所有文件
git add .

忽略追踪特定文件

.gitignore文件

(1)在一个工程中,我们可能有一部分文件不需要,例如工程打编译产生的build/文件夹。

# 创建一个 .gitignore 文件
touch .gitignore
# 在 .gitignore 文件中加入要屏蔽的文件/文件夹
build/

对于已经追踪打文件取消追踪

(1)该命令用于从Git的暂存区(索引)中删除文件或目录,同时保留工作目录中的文件。这意味着文件或目录将不再被Git追踪,但它们仍然会保留在你的本地文件系统中。
(2)一般是编译的过程文件被误操作追踪,使用该命令进行取消追踪。
(3)虽然说使用该命令可以将文件从Git的暂存区删除。但是需要注意,执行完该命令之后,还需要将要忽略的文件添加进入.gitignore文件,防止再次被误追踪。

# git rm: 删除文件或目录。
# -r: 递归删除,即删除目录及其内容。
# --cached: 仅从暂存区删除文件或目录,不从工作目录中删除。
git rm -r --cached <File>

### 示例 ###
git rm -r --cached build/
# 然后进入 .gitignore 文件添加如下内容
build/

提交

(1)当Git成功追踪了工程之后,我们需要

# 打开编辑器编写详细提交消息。Ctrl+X退出编辑。
git commit
# 提交简短的更改信息。
git commit -m "first commit"
# 如果上一次提交信息有问题,可以使用该命令进行修改。Ctrl+X退出编辑。
git commit --amend

查看提交信息

(1)我们可以使用如下命令查看提交历史。

# 查看提交历史
git log
# 查看简化版的提交历史
git log --oneline
# 退出查看
q

在这里插入图片描述

版本对比

(1)如果出现了问题,我们可以使用如下命令对比版本信息。

# 先使用查看提交 ID
git log --oneline
# 版本对比
# git diff : 进行版本对比
# 8f3b66f : 提交ID
# ./main/hello_world_main.c : 要对比的文件
git diff 8f3b66f -- ./main/hello_world_main.c

在这里插入图片描述

版本回退

安全的回退

(1)如果是因为某个文件的错误导致出现了问题,我们就可以进行版本回退。
(2)该方式能够回退指定文件,并且不会将历史记录进行删除,是属于比较安全的版本回退方法。

# git checkout : 保留历史记录的版本回退
# 8f3b66f :  提交ID
# ./main/hello_world_main.c : 要回退的文件
git checkout 8f3b66f  -- ./main/hello_world_main.c

不安全的回退

(1)如果某个版本出现了问题,但是仅仅只修改特定的文件发现没有成功。我们可以使用如下命令将整个工程环境回退到能够使用的版本。
(2)需要注意,这个操作是不可逆的。如果想知道最新版本的仓库情况,需要重新拉取或者提前备份

git reset --hard <commit ID>

克隆项目

(1)如果你想获取他人的仓库,可以先按照如下方法获取地址信息。

在这里插入图片描述

(2)按照如下方法克隆即可。

git clone <仓库地址>

将本地文件上传至云端

(1)在本地修改工程后,我们还需要将本地的工程推送到云端才可以和其他人一起合作。

git push

将云端文件下载到本地

(1)如果同事将工程进行了修改,我们需要和他们的环境同步,执行下面的内容同步。

git pull

查看分支信息

(1)一个工程可能有多个分支,我们可以使用如下命令查看。

git branch

创建分支

# git checkout : 切换分支
# -b : 创建并切换至新分支
git checkout -b <新分支名>

切换分支

# 查看目前有多少个分支
git branch
# 切换分支
git checkout <分支名>

常用操作介绍

仓库首次创建推送

(1)

git init
git add .
git commit -m <内容>
# 将本地和远端的存储库进行连结
git remote add origin <仓库地址>
# 该操作只是对分支进行一个改名,可以不进行操作
# git branch : 分支管理
# -M : 重命名
git branch -M main

# 执行完下面这条命令之后,刷新仓库页面即可看到本地仓库信息
# git push : 将本地仓库的更改推送到远程仓库
# -u : 设置本地分支与远程分支的关联,即上游分支。这样做的好处是,之后可以简化 git pull 和 git push 命令,不需要每次都指定远程分支。

git push -u origin <分支>

新增工程文件并进行上传

(1)

git add . 
git commit -m "增加文件"
# 将这个提交推送至Github
git push

删除工程文件

(1)

git add .
git commit -m "删除文件"

README.md文件

(1)一个开源仓库给他人使用时候,别人是不知道具体信息的,因此需要添加一个README.md文件进行说明。

# 创建一个 README.md 文件,并且向该文件内输入# test
echo "# test" >> README.md

在这里插入图片描述

参考

(1)B站:程式与网页开发者必备技能!Git 和 GitHub 零基础快速上手,轻松掌握版本控制的要诀!

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

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

相关文章

构造与操作链栈

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝心态决定高度,细节决定成败! 链栈是数据结构中栈的一种实现方式,它利用链表(通常是单链表)来存储栈中的元…

【触摸屏】【红十字会学习系统】功能模块:视频 + AI拍照合成

项目背景 提升公众急救能力&#xff1a;确保每个人都能在紧急情况下采取正确的急救措施&#xff0c;减少伤害&#xff0c;挽救生命。培养人道主义价值观&#xff1a;通过教育和培训&#xff0c;传播红十字精神&#xff0c;促进社会对弱势群体的关注与支持。建立社区响应网络&a…

1. InternLM - 入门岛

第1关 Linux 基础知识 1. 完成SSH连接与端口映射并运行hello_world.py SSH连接配置 # wsl2中生成密钥对&#xff08;~/.ssh/id_rsa, ~/.ssh/id_rsa.pub&#xff09; ssh-keygen -t rsa# 将id_rsa.pub在internStudio作为公钥导入SSH登录 $ ssh -p 38871 rootssh.intern-ai.o…

5.SpringBoot核心源码-启动类源码分析

目录 概述技巧spring boot 如何启动应用程序run方法里面核心逻辑 SpringApplicaiton.run(xxx.class,args)结束 概述 SpringBoot核心源码-启动类源码分析 技巧 如何给外部源码加注释&#xff0c;想要在源码中添加自己的注释&#xff0c;会弹出 file is read only&#xff0c;代…

Java核心技术【二十二】Java的I/O流处理:深入文件读写操作、缓冲流、序列化与NIO

Java的I/O流处理&#xff1a;深入文件读写操作、缓冲流、序列化 在Java编程中&#xff0c;I/O流是处理输入输出操作的基础&#xff0c;特别是在文件读写、网络通信等领域。本文将在前文的基础上&#xff0c;进一步探讨缓冲流、序列化以及NIO&#xff08;New I/O&#xff09;在…

从0开始的STM32HAL库学习2

外部中断(HAL库GPIO讲解) 今天我们会详细地学习STM32CubeMX配置外部中断&#xff0c;并且讲解HAL库的GPIO的各种函数。 准备工作&#xff1a; 1、STM32开发板&#xff08;我的是STM32F103C8T6&#xff09; 2、STM32CubeMx软件、 IDE&#xff1a; Keil软件 3、STM32F1xx/ST…

01- 收入数据集【Pytorch入门实战】

目录 一、机器学习基础 二、实战例子 1.数据集分析 2.实战训练 3.总结 三、参考资料 一、机器学习基础 为了解决这个问题&#xff0c;人们想到数据驱动方法&#xff0c;也就是让计算机从现有的大量的带标签图片电学习规律&#xff0c;一旦计算机学习到了其中的规律&…

sip协议栈简介

SIP协议栈简介 SIP协议栈流程 数据链路层&#xff1a;当SIP消息从网络中传输到达TCP/IP协议栈时&#xff0c;首先被接收到的是数据链路层的数据帧。数据链路层会对数据帧进行解封装&#xff0c;得到网络层的IP数据报。 网络层&#xff1a;网络层会对IP数据报进行解析&#xf…

1.27、基于径向基神经网络的曲线拟合(matlab)

1、基于径向基神经网络的曲线拟合简介及原理 1)原理简介 基于径向基神经网络(Radial Basis Function Neural Network, RBFNN)的曲线拟合是一种常用的非线性拟合方法,通过在输入空间中使用径向基函数对数据进行处理,实现对非线性关系的拟合。 RBFNN的基本原理是将输入空…

Java基础(十九):集合框架

目录 一、Java集合框架体系二、Collection接口及方法1、添加2、判断3、删除4、其它 三、Iterator(迭代器)接口1、Iterator接口2、迭代器的执行原理3、foreach循环 四、Collection子接口1&#xff1a;List1、List接口特点2、List接口方法3、List接口主要实现类&#xff1a;Array…

【Hive SQL 每日一题】在线峰值人数计算

文章目录 测试数据需求说明需求实现 测试数据 -- 创建 user_activity 表 DROP TABLE IF EXISTS user_activity ; CREATE TABLE user_activity (user_id STRING,activity_start TIMESTAMP,activity_end TIMESTAMP );-- 插入数据 INSERT INTO user_activity VALUES (user1, 2024…

算效最高的智算中心上线,天府智算为AI产业带来哪些启示?

四川简阳&#xff0c;地处川中、控扼巴峡&#xff0c;自古乃成渝、川鄂之间的交通重镇&#xff0c;素有“天府雄州”之美誉。 步入数字经济时代&#xff0c;“天府雄州”得天独厚的地理位置再次彰显出巨大的战略价值。简阳市成为成渝算力枢纽的天府数据中心集群关键布局点&…

element ui ts table重置排序

#日常# 今天带的实习生&#xff0c;在遇到开发过程中&#xff0c;遇到了element ui table 每次查询的时候都需要重置排序方式&#xff0c;而且多个排序是由前端排序。 <el-table :data"tableData" ref"restTable"> </<el-table> <script…

bi项目笔记

1.bi是什么 bi项目就是商业智能系统&#xff0c;也就是数据可视画、报表可视化系统&#xff0c;如下图的就是bi项目了 2.技术栈

深入了解 MySQL 的 EXPLAIN 命令

一、什么是 EXPLAIN 命令&#xff1f; EXPLAIN 命令用于显示 MySQL 如何执行某个 SQL 语句&#xff0c;尤其是 SELECT 语句。通过 EXPLAIN 命令&#xff0c;可以看到查询在实际执行前的执行计划&#xff0c;这对于优化查询性能至关重要。 二、EXPLAIN 的基本用法 要使用 EXP…

什么时候要用弗洛伊德算法

分析一下题目&#xff0c;我们看到数据量只有一百&#xff0c;这个时候我们就要注意是否是要用弗洛伊德算法&#xff0c;然后接着我们还需要枚举每一种情况&#xff0c;我们可以用到next_permutation这个方法 #include<bits/stdc.h> using namespace std;const int N 10…

matlab R2016b安装cplex12.6,测试时cplex出现出现内部错误的解决方法

问题场景 网上搜索matlabyalmipcplex的安装教程&#xff0c;跟着步骤操作即可&#xff0c;假如都安装好了&#xff0c;在matlab中测试安装是否成功&#xff0c;出现以下问题&#xff1a; 1、matlab中设置路径中添加了yalmip和cplex路径&#xff0c;在命令窗口中输入yalmiptest…

实现将Nginx的每个网站配置单独的nginx配置文件——每个网站单独管理

一、问题描述 Nginx默认地配置文件【nginx.conf】是包含了所有网站的配置内容,如果我们需要配置很多网站的话,就需要在默认的配置文件中给每个网站都添加一条server记录,这样下去nginx默认配置文件会变得很大,很难管理(比如有些网站不使用了,需要注销掉,也需要到该文件操…

openEuler 安装 podman 和 podman compose

在 openEuler 22.03 LTS SP4 中&#xff0c;你可以使用 dnf 包管理器来安装 Podman 和 Podman Compose。openEuler 默认使用 dnf 作为包管理器&#xff0c;所以这是安装软件的首选方式。 关于 openEuler 22.03 LTS SP4 下载地址&#xff1a; https://www.openeuler.org/zh/dow…

【接口自动化_06课_Pytest+Excel+Allure完整框架集成】

一、logging在接口自动化里的应用 1、设置日志的配置&#xff0c;并收集日志文件 日志的设置需要在pytest.ini文件里设置。这个里面尽量不要有中文 2、debug日志的打印 pytest.ini文件的开关一定得是true才能在控制台打印日志 import allure import pytest from P06_PytestFr…