git 学习笔记

目录

一、git 前期配置准备

1、托管平台的账号注册(以gitee码云为demo)

2、本地个人电脑配置

(1)配置用户属性

​编辑

(2)配置SSH密钥

二、git 工作流程图

三、git 提交命令

(1)git init,git status

(2)git clone

(3)git add

(4)git commit

(5)git push

1、origin 代表什么意思?

2、如何推送到特定的远程分支?

3、-u 是什么意思,使用场景描述?

4、git push 如何推送到远程仓库不同名的分支?

5、HEAD:refs/for/ 是什么意思,使用场景描述?

四、git 回退版本

(1)git log 、 git reflog

(2)git reset --hard 

(3)git merge(合并)

(4)git rebase(重新定义起点)

五、分支的创建和检出

六、.gitignore 忽略文件的使用


1、托管平台的账号注册(以gitee码云为demo)

注册时,需要严格记住:

        (1)用户名字    user_name

        (2)绑定邮箱    user_email

        (3)登录密码    passwd(必须牢记,后面添加git配置时,需要登录密码使用)

2、本地个人电脑配置

先安装Git工具,官网地址:https://git-scm.com/download

为了配置SSH秘钥以用于Git,打开终端(在Windows上可以使用Git Bash),请按照以下步骤操作,拷贝/输入以下内容:

(1)配置用户属性
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"查看配置信息:
git config --list
(2)配置SSH密钥

执行时,一路回车按enter即可:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

默认的路径和名称是: ~/.ssh/id_rsa。生成密钥的过程中,会先提示你输入存储密钥的文件路径和名称,然后会提示你输入一个密码。如果你希望使用默认值,直接按回车即可。

完成以上步骤后,就会在你指定的路径下生成两个文件:id_rsa 和 id_rsa.pub,其中 id_rsa 是私钥,必须妥善保管;id_rsa.pub是公钥,需要添加到Git账户中。

(3)将公钥复制添加到gitee的ssh key配置

cat ~/.ssh/id_rsa.pub

二、git 工作流程图

三、git 提交命令

(1)git init,git status

git init 命令只用于在一个空目录中创建新仓库,如果你想要克隆(clone)一个已存在的远程仓库到本地,请使用 git clone 命令。.git 默认是隐藏的,可以用 ls -a 命令查看。

查看当前仓库的操作状态:

git status
(2)git clone

克隆远程版本库——git clone 是 Git 中用于从远程仓库中复制项目的命令。这个命令会在当前目录下创建一个新的目录,其名字默认是远程仓库的名字,并且会从远程仓库下载所有的数据,同时也会把远程仓库的所有分支和标签都拉取到本地。

git clone <仓库名(SSH/HTTPS)>  <本地路径目录>
(3)git add

将文件添加到暂存区:

git add <路径/文件名1>  <路径/文件名2>  <路径/文件名3> ...
git add .
'.'字符:将 当前目录 下, 所有更改的文件都添加到暂存区git status: 可查看操作信息, 并指示接下来的操作提示
(4)git commit
git commit -m  "提交信息,注释内容"
git commit -am "提交信息,注释内容"
  • git commit -m‌:这个命令用于提交暂存区的文件,如果只是修改了已经跟踪的文件,可以直接使用这个命令。例如,git commit -m "update"会将暂存区的文件提交到本地分支。

  • git commit -am‌:这个命令是git addgit commit -m两个命令的合并,用于提交已经跟踪过的文件。如果项目中添加了新文件,必须使用分开的命令,即先使用git add命令跟踪新文件,然后再使用git commit -m命令提交暂存区的文件。

  • 使用 -a 选项会自动将所有已经跟踪的文件的更改添加到暂存区,并进行提交,但这不包括未跟踪的新文件。

(5)git push

常用git push命令:git pull 相当于git fetch+merge 两个操作的结合

eg:git push origin <local_branch>备注:
origin      :代表远程仓库的URL
local_branch:当前本地仓库的分支
1、origin 代表什么意思?

‌git push命令中的origin是指远程仓库的名称‌,也是远程仓库在本地的别名。在Git中,远程仓库是指存储在云端或其他计算机上的代码仓库,用于协作开发和代码版本控制。origin通常是默认的远程仓库名称,它表示要将本地代码推送到哪个远程仓库‌。

远程仓库的主要作用是用于代码的同步和共享。通过将本地代码推送到远程仓库,可以实现代码的版本控制和远程备份,这对于团队协作和代码管理非常重要。在多人共同开发一个项目时,远程仓库还能帮助解决代码冲突,确保团队成员之间的代码同步和更新‌。

查看origin信息:
git remote -v
  • git remote -v命令: 用于显示当前仓库中已经配置的远程仓库的简写名称和对应的URL‌。具体来说,它会列出所有远程仓库的详细信息,包括每个远程仓库的名称、克隆(Fetch)和推送(Push)的URL‌。
  • 检查配置‌:在添加新的远程仓库或修改现有远程仓库的URL后,使用git remote -v可以快速验证配置是否正确。

2、如何推送到特定的远程分支?
git push  <remote_name>  <local_branch_name>:<remote_branch_name>其中:
<remote_name>        : 是远程仓库的名称(通常默认为 origin)
<local_branch_name>  : 是你想要推送的本地分支名称
<remote_branch_name> : 是目标远程仓库的分支名称-----------------------------------------------------------------
git push  <远程主机名>  <本地分支名>:<远程分支名>如果本地分支名与远程分支名相同:
git push <远程主机名> <本地分支名>
3、-u 是什么意思,使用场景描述?
git push -u origin <local_branch>:<remote_branch>

4、git push 如何推送到远程仓库不同名的分支?

5、HEAD:refs/for/ 是什么意思,使用场景描述?

gerrit中 git push 带 review 回顾审核功能:

托管平台 gerrit:
git push origin HEAD:refs/for/master托管平台 gitlab、github、gitee:git push origin HEAD:refs/for/master
  • 注意:HEAD:refs/for/这个不是git的规则,而是gerrit的规则。不适用于gitlab、github、gitee等托管平台;而 gitlab、github、gitee应该使用: refs/heads/分支名。
  • Gitee本身并不直接支持HEAD:refs/for/这一Gerrit特有的推送格式。如果开发团队需要在Gitee上使用代码评审功能,可以考虑使用Gitee自带的Pull Request(PR)机制或其他外部代码评审工具,并根据这些工具的要求来配置和使用Git引用;
  • HEAD是一个指向当前工作分支的指针,表示你正在哪个分支上操作。也就是git branch -a显示的分支前的星号 ' * ',可以理解为正在工作的当前分支的别名

6、git 中已经commit到本地仓库的文件还能再次被回退到工作区修改吗?

四、git 回退版本

回退已经提交 commit 到本地仓库的历史版本:

(1)git log 、 git reflog

git log:查看日志

git reflog:操作日志(也可查找 <commit ID>)

(2)git reset --hard  <commit ID>

请注意:git reset --hard会丢失所有工作区和暂存区的更改,操作前请确保:不需要这些更改或者已经有备份

切记:如果暂存区存在没有commit提交到本地仓库的文件,一定记住不能执行该操作,否则未提交的文件无法恢复。

(3)git merge(合并)、git rebase(重新定义起点)

注意:想要合并到当前的分支,因为是朝当前分支合并,而不是将当前分支合到别的分支,一定得注意合并的方向

git merge  <被合并的分支>
git rebase <被合并的分支>

五分钟学会git rebase和 git merge的区别_哔哩哔哩_bilibili

五、分支的创建和检出
  • 分支的查看

注意:分支前的星号 ' * ' 表示当前所在的分支

git branch   : 查看当前 本地仓库的分支
git branch -a: 查看当前 所有仓库的分支(包含本地仓库 和 远程仓库)
git branch -r: 查看当前 远程仓库的分支
  • 分支的创建 和 删除
git branch 分支名
注意: 创建分支仅仅是创建分支,并不会做检出分支的动作-------------------------------
删除分支:
git branch -d  分支名当本地分支删除后,推动到远程仓库后,远程仓库并不能自动删除远程分支
所以分支的完全删除是分两个部分的,一个是本地,一个是远程。本地删除操作需要加上 -d或者 -D 参数,区别在于-D比-d要粗暴一点。
当被删除分支有新内容没有被合并的时候,使用-D,会直接删除。使用-d,会提示该分支有新内容没有被合并,不执行删除。
删除需谨慎,建议非特殊情况下,使用温柔的-d要好一点,以免小手一抖,眼泪长流。
————————————————原文链接:https://blog.csdn.net/qq_32452623/article/details/78355976
  • 分支的检出
git checkout 分支名
  • 同时创建并检出分支
git checkout -b 分支名
六、.gitignore 忽略文件的使用

.gitignore 忽略文件的介绍

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

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

相关文章

uniapp中使用uni-forms实现表单管理,验证表单

前言 uni-forms 是一个用于表单管理的组件。它提供了一种简化和统一的方式来处理表单数据&#xff0c;包括表单验证、字段绑定和提交逻辑等。使用 uni-forms可以方便地创建各种类型的表单&#xff0c;支持数据双向绑定&#xff0c;可以与其他组件及API进行良好的集成。开发者可…

_C#_串口助手_字符串拼接缺失问题(未知原理)

最近使用WPF开发串口助手时&#xff0c;遇到一个很奇怪的问题&#xff0c;无论是主线程、异步还是多线程&#xff0c;当串口接收速度达到0.016s一次以上&#xff0c;就会发生字符串缺失问题并且很卡。而0.016s就一切如常&#xff0c;仿佛0.015s与0.016s是天堑之隔。 同一份代码…

JVM(JAVA虚拟机)内存溢出导致内存不足,Java运行时环境无法继续

1、先贴出服务最后打印出来的日志&#xff0c;意思就是给虚拟机分配的内存被用完了&#xff0c;没有可用的内存了&#xff0c;服务运行不了了&#xff0c;被动停服了。详细的日志记录在了/home/user/zx/tomcat/apache-tomcat-8.5.82/bin/hs_err_pid147951.log文件里。 Java Ho…

OGRE 3D----3. OGRE绘制自定义模型

在使用OGRE进行开发时,绘制自定义模型是一个常见的需求。本文将介绍如何使用OGRE的ManualObject类来创建和绘制自定义模型。通过ManualObject,开发者可以直接定义顶点、法线、纹理坐标等,从而灵活地构建各种复杂的几何体。 Ogre::ManualObject 是 Ogre3D 引擎中的一个类,用…

Spring Boot英语知识网站:架构与开发

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式&#xff0c;是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示&#xff1a; 图4-1系统工作原理…

如何借助AI生成PPT,让创作轻松又高效

PPT是现代职场中不可或缺的表达工具&#xff0c;但同时也可能是令人抓狂的时间杀手。几页幻灯片的制作&#xff0c;常常需要花费数小时调整字体、配色与排版。AI的飞速发展为我们带来了革新——AI生成PPT的技术不仅让制作流程大大简化&#xff0c;还重新定义了效率与创意的关系…

Unity ShaderLab 实现网格爆炸

实现思路&#xff1a; 沿着3D物体每个面的法线&#xff0c;将面偏移一定的位置。 Shader Graph实现如下&#xff1a; Shader Lab 实现如下&#xff1a; Shader "Unlit/MeshExplode" {Properties{_MainTex ("Texture", 2D) "white" {}_Distan…

阅读《基于蒙特卡洛法的破片打击无人机易损性分析》_笔记

目录 基本信息 1 引言 1.1 主要研究内容 1.2 研究必要性&#xff08;为什么要研究&#xff09; 1.3 该领域研究现状&#xff08;别人做了什么/怎么做的&#xff09; 2 主要研究过程&#xff08;我们做了什么&#xff09; 2.1 建立目标仿真模型 2.2 确定毁伤依据 2.3 无…

如何让控件始终处于父容器的居中位置(父容器可任意改变大小)

1、改变父容器大小前 父容器是一个panel&#xff0c;控件是一个按钮button1 1&#xff09;刚开始让button1的左边距离panel的左边缘和button1的右边距离panel的右边缘两个距离相等&#xff1b; 2&#xff09;将button1的Anchor属性设置为None 2、改变父容器大小后 直接改变…

【线程】Java多线程代码案例(2)

【线程】Java多线程代码案例&#xff08;2&#xff09; 一、定时器的实现1.1Java标准库定时器1.2 定时器的实现 二、线程池的实现2.1 线程池2.2 Java标准库中的线程池2.3 线程池的实现 一、定时器的实现 1.1Java标准库定时器 import java.util.Timer; import java.util.Timer…

非递归遍历二叉树(数据结构)

我的博客主页 非递归遍历二叉树 前序遍历&#xff08;迭代&#xff09;中序遍历&#xff08;迭代&#xff09;后续遍历&#xff08;迭代&#xff09; 二叉树的遍历方式有&#xff1a;前序遍历、中序遍历、后续遍历&#xff0c;层序遍历&#xff0c;而树的大部分情况下都是通过递…

【CSS】一篇掌握CSS

不是因为有了希望才去坚持,而是坚持了才有了希望 目录 一.导入方式 1.行内样式 2.内部样式 3.外部样式(常用) 二.选择器 1.基本选择器(常用) 1.1标签选择器 1.2类选择器 1.3id选择器 2.层次选择器 2.1后代选择器 2.2子选择器 2.3相邻兄弟选择器 2.4通用兄弟选择器…

封装类与封装函数

目录结构 src/ ├── utils/ │ ├── test.js │ ├── Calculator.js ├── views/ │ ├── Home.vue ├── App.vue 共同点&#xff1a;模块导出与模块引入 封装函数 场景 简单、轻量级和性能敏感的场景&#xff0c;适合快速开发和维护。 优 可维护性&…

【论文阅读】Federated learning backdoor attack detection with persistence diagram

目的&#xff1a;检测联邦学习环境下&#xff0c;上传上来的模型是不是恶意的。 1、将一个模型转换为|L|个PD,&#xff08;其中|L|为层数&#xff09; 如何将每一层转换成一个PD&#xff1f; 为了评估第&#x1d457;层的激活值&#xff0c;我们需要&#x1d450;个输入来获…

5 Java字符串操作

字符串操作 1、String类1.1 声明字符串1.2 创建字符串 1.3 字符串连接 /连接字符串连接其他数据类型 1.4 提取字符串信息获取字符串长度length()获取指定位置的字符 charAt()获取子字符串索引位置 indexOf()判断字符串首尾内容 startsWith()/endsWith()获取字符数组 toCharArra…

IDEA报错: java: JPS incremental annotation processing is disabled 解决

起因 换了个电脑打开了之前某个老项目IDEA启动springcloud其中某个服务直接报错&#xff0c;信息如下 java: JPS incremental annotation processing is disabled. Compilation results on partial recompilation may be inaccurate. Use build process “jps.track.ap.depen…

Mybatis-基础操作

Mybatis的基础操作就是通过Mybatis完成对数据的增删改查。我们通过例子来引入这些操作&#xff0c;之前的项目较久远&#xff0c;因此我们从零开始进行准备工作&#xff1a; 搭建项目 一、创建数据库user_list并插入数据&#xff1a; -- 创建数据库 create table user_list …

火山引擎VeDI在AI+BI领域的演进与实践

随着数字化时代的到来&#xff0c;企业对于数据分析与智能决策的需求日益增强。作为新一代企业级数据智能平台&#xff0c;火山引擎数智平台VeDI基于字节跳动多年的“数据驱动”实践经验&#xff0c;也正逐步在AI&#xff08;人工智能&#xff09;与BI&#xff08;商业智能&…

鼠标前进后退键改双击,键盘映射(AutoHotkey)

初衷&#xff1a; 1.大部分鼠标为不可自定义按键&#xff0c;可以自定义的又很贵。 鼠标左键是双击是很频类很高的操作&#xff0c;鼠标前进/后退按键个人感觉使用频率很低&#xff0c;因此把鼠标前进/后退改为双击还是很合适的。 2.有些短款的键盘没有Home或End键&#xff0c;…

IntelliJ IDEA安装内网穿透实现远程连接家里或公司的MySQL数据库助力开发

文章目录 前言1. 本地连接测试2. Windows安装Cpolar3. 配置Mysql公网地址4. IDEA远程连接Mysql5. 固定连接公网地址6. 固定地址连接测试 前言 本教程主要介绍如何使用Cpolar内网穿透工具实现在IDEA中也可以远程访问家里或者公司的数据库&#xff0c;提高开发效率&#xff01;无…