当前位置: 首页 > news >正文

Git基本用法总结

设置全局用户名

git config --global user.name xxx #设置全局用户名

设置全局邮箱地址

git config --global user.email xxx@xxx.com     #设置全局邮箱地址

查看所有的 Git 配置,包括用户信息

git config --list  #查看所有的 Git 配置,包括用户信息
git init    #将当前目录配置成git仓库,信息记录在隐藏的.git文件夹中git add XX  #将XX文件添加到暂存区
git add .   #将所有待加入暂存区的文件加入暂存区

git restore 命令用于恢复文件到工作区或暂存区,其 --staged 选项和不带 --staged 的版本在功能上有显著区别。

git restore --staged

  • 作用--staged 选项用于将文件从暂存区(即缓存区)移除,但不影响工作区中的文件内容。

  • 场景:当你不小心将某些文件添加到了暂存区(例如使用 git add),但是你决定不再包括这些文件在下一次提交中。使用 git restore --staged 可以将这些文件从暂存区移除,同时保留工作区中的修改。

git add a.txt  # 将 a.txt 文件添加到暂存区
git restore --staged a.txt  # 从暂存区移除 a.txt 文件,但工作区中的 a.txt 仍然存在

git restore(不带 --staged

  • 作用:不带 --staged 的 git restore 用于将文件从工作区恢复到暂存区的状态,即撤销工作区的更改,使其与暂存区中的版本一致。

  • 场景:当你在工作区中对文件进行了更改,而你希望撤销这些更改,使文件恢复到暂存区中的状态(即最后一次添加或提交的状态)。这将覆盖工作区中的修改,但不会影响暂存区中的文件。

git add a.txt  # 将 a.txt 文件添加到暂存区
echo "some changes" >> a.txt  # 对 a.txt 文件进行修改
git restore a.txt  # 将 a.txt 文件恢复到暂存区中的版本,即撤销对 a.txt 的修改

将暂存区的内容提交到当前分支

git commit -m "给自己看的备注信息"

查看仓库状态

git status        #查看仓库状态

查看XX文件相对于暂存区修改了哪些内容

git diff XX   #查看XX文件相对于暂存区修改了哪些内容

查看当前分支的所有版本

git log      #查看当前分支的所有版本

查看HEAD指针的移动历史(包括被回滚的版本)

git reflog       #查看HEAD指针的移动历史(包括被回滚的版本)

将代码库回滚到上一个版本

git reset --hard HEAD^     #将代码库回滚到上一个版本

回滚

git reset --hard HEAD^^      #往上回滚两次,以此类推
git reset --hard HEAD~100    #往上回滚100个版本

回滚到某一特定版本

git reset --hard 版本号   #回滚到某一特定版本

生成密钥

ssh-keygen -t rsa       #生成后一路回车

获取密钥

cat ~/.ssh/id_rsa.pub   #公钥

验证是否认证成功(用Gitee)

ssh -T git@gitee.com

在本地告诉终端,远程仓库的地址(这里是将本地仓库与云端的新建的一个仓库连接,情景是:我先在本地开发一些项目,但是没有上传,然后我在Gitee中创建一个仓库叫git_test.git。我现在想要将本地的上传到云端,首先要建立连接,然后再上传)

git remote add origin git@gitee.com:someone/git_test.git #最后一个是地址,起一个名字叫origin

查看远程仓库

git remote

将本地文件夹推送到远程仓库

git push -u origin master

git push -u (第一次需要-u以后不需要):将当前分支推送到远程仓库

git push -u (第一次需要-u以后不需要)        #将当前分支推送到远程仓库

将云端的项目克隆到本地

git clone git@git.acwing.com:xxx/XXX.git

创建并切换到branch_name这个分支

git checkout -b branch_name   #创建并切换到branch_name这个分支

查看所有分支和当前所处分支

git branch        #查看所有分支和当前所处分支

切换到branch_name这个分支

git checkout branch_name      #切换到branch_name这个分支

将分支branch_name合并到当前分支上(注意,一般先切换到主分支,然后合并其他分支)

git merge branch_name     #将分支branch_name合并到当前分支上

删除分支(注意:要删除这个分支,首先要进其他分支。)

git branch -d branch_name     #删除本地仓库的branch_name分支

创建新分支

git branch branch_name    #创建新分支

设置本地的branch_name分支对应远程仓库的branch_name分支(注意,这里可以简单的git push 然后如果远程仓库没有这个分支,终端会报错,然后会打印一个命令,直接复制这个命令然后在终端执行就可以了)(这个是本地有这个分支,但是云端没有,需要将本地的分支上传到云端)

git push --set-upstream origin branch_name  # 设置本地的branch_name分支对应远程仓库的branch_name分支

删除远程仓库的branch_name分支

git push -d origin branch_name         #删除远程仓库的branch_name分支

将远程的branch_name1分支与本地的branch_name2分支对应(绑定在一起)(这个是云端已经有分支了,但是本地没有对应的,需要在本地先建立一个这个分支,然后将这个分支与云端的分支对应)

git branch --set-upstream-to=origin/branch_name1 branch_name2   #将远程的branch_name1分支与本地的branch_name2分支对应#然后拉下来,并且*******合并*****
git pull

将云端的分支拉下来也可以不用“先同步两个分支”,可以在云端的一个分支和本地一个直接合并(这里是,云端有一个本地没有的分支,branch_name 然后将云端的这个分支合并到本地当前分支)

git pull origin branch_name   #将远程仓库的branch_name分支与本地仓库的当前分支合并

`git clone` 和 `git pull` 是 Git 中两个不同的命令,它们的功能和用途如下:

1. `git clone`

- **功能**:将远程仓库的所有内容(包括文件、历史记录、分支等)复制到本地计算机。
- **使用场景**:通常在你第一次获取一个远程仓库时使用
 

  git clone https://gitee.com/username/repo.git

2. `git pull`

- **功能**:从远程仓库拉取最新的更改并合并到当前本地分支。相当于 `git fetch` 和 `git merge` 的组合。
- **使用场景**:在你已经有了本地仓库,并想更新本地分支以获取最新的更改时使用。

  git pull origin your-branch-name

总结

- **`git clone`**:用于首次获取整个仓库。
- **`git pull`**:用于更新已存在的本地仓库。

这两个命令在工作流程中起到不同的作用。希望这个解释对你有帮助!如果还有其他问题,随时问我!

注意:

当你使用 git clone 命令时,Git 会自动为你创建一个与远程仓库的连接,包括设置 origin 作为默认的远程仓库。不需要使用“git remote add origin git@git.acwing.com:xxx/XXX.git:将本地仓库关联到远程仓库”。

具体说明

  • git clone:这个命令会将远程仓库的内容克隆到你的本地计算机,并自动设置好远程仓库的地址(例如 origin),你不需要手动执行 git remote add origin ...

例子

当你执行以下命令:

git clone git@git.acwing.com:xxx/XXX.git

Git 会执行以下操作:

  1. 克隆远程仓库的所有内容。
  2. 创建一个名为 origin 的远程连接,指向你克隆的仓库。
  3. 默认会将当前分支设置为跟踪远程的主分支(通常是 main 或 master)。

总结

因此,使用 git clone 后,你就不需要再手动添加远程仓库的关联了。如果你想查看当前的远程仓库设置,可以使用:

相关文章:

Git基本用法总结

设置全局用户名 git config --global user.name xxx #设置全局用户名 设置全局邮箱地址 git config --global user.email xxxxxx.com #设置全局邮箱地址 查看所有的 Git 配置,包括用户信息 git config --list #查看所有的 Git 配置,包括用户信…...

SQLite的入门级项目学习记录(四)

性能评估和测试 规划项目 1、框架选择:前端交互和线程控制用pyside,SQLite作为数据库支持。 2、预估数据量:每秒10个数据,每个月约26000000(26M)条。 3、压力测试:首先用python脚本创建一个数据…...

Docker工作目录迁移

文章目录 前言一、迁移步骤1.停掉docker服务2.创建存储目录3.迁移docker数据4.备份5.添加软链接6.重启docker服务,测试 总结 前言 安装docker,默认的情况容器的默认存储路径会存储系统盘的 /var/lib/docker 目录下,系统盘一般默认 50G&#…...

【多维动态规划】64. 最小路径和(面试真题+面试官调整后的题目)

64. 最小路径和 难度:中等 力扣地址:https://leetcode.cn/problems/minimum-path-sum/description/ 1. 原题以及解法 1.1 题目 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和…...

Web后端开发技术:RESTful 架构详解

RESTful 是一种基于 REST(表述性状态转移,Representational State Transfer)架构风格的 API 设计方式,通常用于构建分布式系统,特别是在 Web 应用开发中广泛应用。REST 是一种轻量级的架构模式,利用标准的 …...

【Fastapi】参数获取,json和query

【Fastapi】参数获取,json和query 前言giteegithub query形式json传递同步方法使用json 前言 花了半个月的时间看了一本小说,懈怠了…今天更新下fastapi框架的参数获取 gitee https://gitee.com/zz1521145346/fastapi_frame.git github https://git…...

【Node.js】初识微服务

概述 Node.js 的微服务架构是一种通过将应用程序分解为独立的、松耦合的小服务的方式进行系统设计。 每个微服务负责处理一个特定的业务功能,并且这些服务可以独立开发、部署、扩展和管理,并且可以通讯。 它的核心思想就是解耦。 微服务和微前端是类…...

React项目实战(React后台管理系统、TypeScript+React18)

### 项目地址:(线上发布) (1)别人的项目地址 gitgitee.com:zqingle/lege-react-management.git (2)我自己的项目地址 gitgitee.com:huihui-999/lege-react-management.git ### B站讲解视频地址 https://www.bilibili.com/video/BV1FV4y157Zx?p37&spm_id_frompageDrive…...

【专题】2024中国生物医药出海现状与趋势蓝皮书报告合集PDF分享(附原数据表)

原文链接:https://tecdat.cn/?p37719 出海已成为中国医药产业实现提速扩容的重要途径。目前,中国医药产业发展态势良好,创新能力不断增强,然而也面临着医保政策改革和带量集采带来的压力。政府积极出台多项政策支持医药企业出海…...

【iOS】KVC

文章目录 KVC的定义 容器类中KVC的实现 KVC设值 KVC取值 KVC使用KeyPath KVC处理异常 KVC处理设值nil异常 KVC处理UndefinedKey异常 KVC处理数值和结构体类型属性 KVC键值验证 KVC处理集合 简单集合运算符 对象运算符 KVC处理字典 KVC应用 动态地取值和设值 用…...

【2024年华为杯研究生数学建模竞赛C题】完整论文与代码

这里写目录标题 基于数据驱动下磁性元件的磁芯损耗建模一、问题重述1.1问题背景1.2问题回顾 问题分析与模型假设模型建立与求解 基于数据驱动下磁性元件的磁芯损耗建模 一、问题重述 1.1问题背景 在现代电力电子和变压器设计中,磁性元件是确保能量高效传递和系统稳…...

svn回退到以前历史版本修改并上传

svn回退到以前版本,并在以前版本上修改代码后,上传到svn库当中,如下步骤: 3、 以回退到版本号4为例:选中版本号4,右键->Revert to this version,在出现的对话框中 点击yes! 4、 5、...

fiddler抓包07_抓IOS手机请求

课程大纲 前提:电脑和手机连接同一个局域网 (土小帽电脑和手机都连了自己的无线网“tuxiaomao”。) 原理如下: 电脑浏览器抓包时,直接就是本机网络。手机想被电脑Fiddler抓包,就要把Fiddler变成手机和网络…...

Windows系统及Ubuntu系统安装Java

Java语言简介 Java是一种高级编程语言,Java语言的创始可以追溯到1990年代初,当时任职于Sun Microsystems(后来被甲骨文公司收购)的詹姆斯高斯林(James Gosling)等人开始开发一种名为“Oak”(名字来源于詹姆…...

uni-data-select 使用 localdata 传入数据出现 不回显 | 下拉显示错误的 解决方法

目录 1. 问题所示2. 正确Demo3. 下拉显示错误(Bug复现)4. 下拉不回显(Bug复现)1. 问题所示 uni-app的下拉框uni-data-select 使用 localdata 传入数据 主要总结正确的Demo以及复现一些Bug 数据不回显数据不显示下拉选项2. 正确Demo 详细的基本知识推荐阅读:uni-app中的…...

图解 TCP 四次挥手|深度解析|为什么是四次|为什么要等2MSL

写在前面 今天我们来图解一下TCP的四次挥手、深度解析为什么是四次? 上一片文章我们已经介绍了TCP的三次握手 解析四次挥手 数据传输完毕之后,通信的双方都可释放连接。现在客户端A和服务端B都处于ESTABLISHED状态。 第一次挥手 客户端A的应用进…...

DevExpress中文教程:如何将WinForms数据网格连接到ASP. NET Core WebAPI服务?

日前DevExpress官方发布了DevExpress WinForms的后续版本——将.NET桌面客户端连接到安全后端Web API服务(EF Core with OData),在本文中我们将进一步演示如何使用一个更简单的服务来设置DevExpress WinForms数据网格。 P.S:DevExpress WinForms拥有180…...

SpringBoot3核心特性-核心原理

目录 传送门前言一、事件和监听器1、生命周期监听2、事件触发时机 二、自动配置原理1、入门理解1.1、自动配置流程1.2、SPI机制1.3、功能开关 2、进阶理解2.1、 SpringBootApplication2.2、 完整启动加载流程 三、自定义starter1、业务代码2、基本抽取3、使用EnableXxx机制4、完…...

Linux:RPM软件包管理以及yum软件包仓库

挂载光驱设备 RPM软件包管理 RPM软件包简介 区分软件名和软件包名 软件名:firefox 软件包名:firefox-52.7.0-1.el7.centos.x86_64.rpm 查询软件信息 查询软件(参数为软件名) ]# rpm -qa #当前系统中所有已安装的软件包 ]# r…...

pod介绍与配置

1、pod概念介绍 Pod 是 kubernetes 基本调度单位。每个 Pod 中可以运 行一个或多个容器,共享 Pod 的文件系统、IP 和网络等资源,每个 Pod 只有一个 IP。 2、使用 yaml或json 文件创建 Pod 声明式文件方式创建 Pod,支持 yaml 和 json 1&…...

【Taro】初识 Taro

笔记来源:编程导航。 概述 Taro 官方文档:https://taro-docs.jd.com/docs/ (跨端开发框架) Taro 官方框架兼容的组件库: taro-ui:https://taro-ui.jd.com/#/ (最推荐,兼容性最好&…...

【设计模式-备忘录】

备忘录模式(Memento Pattern)是一种行为型设计模式,用于保存对象的内部状态,以便在将来某个时间可以恢复到该状态,而不暴露对象的内部实现细节。备忘录模式特别适合在需要支持撤销(Undo)操作的应…...

【数据结构】排序算法系列——快速排序(附源码+图解)

快速排序 接下来我们将要介绍的是排序中最为重要的算法之一——快速排序。 快速排序(英语:Quicksort),又称分区交换排序(partition-exchange sort),最早由东尼霍尔提出。快速排序通常明显比其…...

Arthas thread(查看当前JVM的线程堆栈信息)

文章目录 二、命令列表2.1 jvm相关命令2.1.2 thread(查看当前JVM的线程堆栈信息)举例1:展示[数字]线程的运行堆栈,命令:thread 线程ID举例2:找出当前阻塞其他线程的线程 二、命令列表 2.1 jvm相关命令 2.…...

Tomcat_WebApp

Tomcat的目录的介绍 /bin: 这个目录包含启动和关闭 Tomcat 的脚本。 startup.bat / startup.sh:用于启动 Tomcat(.bat 文件是 Windows 系统用的,.sh 文件是 Linux/Unix 系统用的)。shutdown.bat / shutdown.sh&#xf…...

代码随想录算法训练营Day10

150. 逆波兰表达式求值 力扣题目链接&#xff1b;. - 力扣&#xff08;LeetCode&#xff09; Collection——Deque——LInkedList类 class Solution {public int evalRPN(String[] tokens) {Deque<Integer> myquenew LinkedList<>();for(String a:tokens){if(a.…...

十个服务器中毒的常见特征及其检测方法

服务器作为企业的核心资源&#xff0c;其安全性至关重要。一旦服务器被病毒入侵&#xff0c;不仅会影响系统的正常运行&#xff0c;还可能导致数据泄露等严重后果。以下是十种常见的服务器中毒特征及其检测方法。 1. 系统性能下降 病毒常常占用大量的CPU和内存资源&#xff0…...

LeetCode 每周算法 6(图论、回溯)

LeetCode 每周算法 6&#xff08;图论、回溯&#xff09; 图论算法&#xff1a; class Solution: def dfs(self, grid: List[List[str]], r: int, c: int) -> None: """ 深度优先搜索函数&#xff0c;用于遍历并标记与当前位置(r, c)相连的所有陆地&…...

Selenium元素定位:深入探索与实践

目录 一、引言 二、Selenium元素定位基础 1. WebDriver与元素定位 2. 定位策略概览 三、ID定位 1. 特点与优势 2. 示例代码 四、Class Name定位 1. 特点与限制 2. 示例代码 五、XPath定位 1. 特点与优势 2. 示例代码 3. XPath高级用法 六、CSS Selector定位 1.…...

前端开发——(1)使用vercel进行网页开发

前端开发——&#xff08;1&#xff09;使用Vercel进行网页开发 在现代前端开发中&#xff0c;选择一个高效的部署平台至关重要。Vercel 提供了快速、简便的部署方式&#xff0c;特别适合静态网站和 Next.js 应用。本文将带你逐步了解如何使用 Vercel 部署并运行你的网页项目。…...