Git简单使用和理解

news2025/2/7 22:24:17

请添加图片描述
workspace: 本地的工作目录。
index/stage:暂存区域,临时保存本地改动。
local repository: 本地仓库,只想最后一次提交HEAD。
remote repository:远程仓库。
对于Git,首先应该明白第一git是一种分布式版本控制系统,最先进的,所以,并不要一上来就想与远程仓库github关联,这样会对理解造成偏差。
初始化
GitHub给出的地址不止一个,还可以用https://github.com/michaelliao/gitskills.git这样的地址。实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。

makdir 文件名//创建一个文件
git init //创建git管理   ls-a 
git clone /path/to/repository //克隆到本地仓库

git config --global user.email "you@example.com" //配置email
git config --global user.name "Name" //配置用户名

配置 git config --global user.email 和 git config --global user.name 是为了在你提交代码时标识你的身份。每次你提交代码到 Git 仓库时,Git 都会记录提交者的用户名和邮箱地址。

基本操作

git add <file> //文件添加 提交到暂存区
git add . // 所有文件添加
git commit -m "代码提交信息" //暂存区的文件提交
git commit --amend //与上次commit合并

git push origin master //推送至master分支
git pull //更新本地仓库至最新改动
git fetch //抓取远程仓库更新

git log //查看提交记录
git status //查看修改状态

git diff//查看详细修改内容
git show//显示某次提交的内容

回退版本
Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD指向改变。

git reset --hard HEAD^ //回退到上一个版本
git log //查看提交记录
git reset --hard 1094a//回退到指定的由git log 查看到1094a的版本
git reflog //查看命令历史,回到未来

HEAD指向的版本就是当前版本,
因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
撤销修改

git checkout -- readme.txt //丢弃工作区的修改
git reset HEAD <file> //把暂存区的修改撤销掉,重新放回工作区

删除文件
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”

rm test.txt
git rm test.txt//从版本库中删除该文件,那就用命令git rm删掉,并且git commit:
git commit

添加远程仓库

git remote add origin git@github.com:yourname/learngit.git//添加后,远程库的名字就是origin
git remote -v //查看当前关联的远程库
git remote rm origin//解除本地与远程库绑定
git push -u origin master //把本地库的所有内容推送到远程库上
git push origin master //把本地master分支的最新修改推送至GitHub

创建分支与合并
切换分支这个动作,用switch更科学。因此,最新版本的Git提供了新的git switch命令来切换分支

git branch dev //创建
git checkout dev //切换
git checkout -b dev //创建dev分支,然后切换到dev分支
git branch //查看当前分支 git branch命令会列出所有分支,当前分支前面会标一个*号。
//切换到当前分支之后,就可以在当前分支上添加,提交
git merge dev//切换到master,使用该命令 dev分支的工作成果合并到master分支上
git branch -d dev//删除dev分支

解决冲突

当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
用git log --graph命令可以看到分支合并图。

分支管理策略
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。下面我们实战一下--no-ff方式的git merge

git merge --no-ff -m "merge with no-ff" dev //准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward

请添加图片描述
bug分支
https://www.liaoxuefeng.com/wiki/896043488029600/900388704535136

标签管理

git tag v1.0//创建标签
git tag//查看所有标签
git tag v0.9 f52c633 //找到对应的commit id 

git tag -d v0.1//删除标签
git push origin <tagname> //推送某个标签到远程

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

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

相关文章

Echarts饼图-实现今日进度-动态图

效果预览 本次实现的是一个饼图&#xff0c;蓝色科技背景色&#xff0c;星球转动效果 进度显示。 构建一个动态饼图&#xff0c;采用ECharts&#xff0c;背景为蓝色科技风&#xff0c;有星球转动效果。通过echarts.init初始化&#xff0c;设置图表尺寸和背景色&#xff0c;配…

Add and Remove Rows

New Item Row 数据网格可以显示一个空行&#xff0c;使用户可以添加新记录。该行由显示在相应行指示符单元格内的星号&#xff08;*&#xff09;标识。若要取消添加新行&#xff0c;用户可以按Esc键。 相关API GridOptionsView.NewItemRowPosition — 允许您启用一个新的项…

快速又不失灵活性的JeecgBoot框架

简介JeecgBoot 开源界 "小普元" 超越传统商业平台。引领低代码开发模式 (OnlineCoding-> 代码生成器 -> 手工 MERGE)&#xff0c;低代码开发同时又支持灵活编码&#xff0c; 可以帮助解决 Java 项目 70% 的重复工作&#xff0c;让开发更多关注业务。既能快速提…

如何自制一个Spring Boot Starter并推送到远端公服

在现代Java开发中&#xff0c;Spring Boot无疑是一个强大且便捷的框架&#xff0c;它通过提供大量的Starter来简化依赖管理和项目配置。有时&#xff0c;我们可能需要为特定功能或团队定制Starter。本文将指导你如何创建自己的Spring Boot Starter并将其推送到远程公共服务器上…

WRONGPASS invalid username-password pair or user is disabled

连接redis客户端的时候报错&#xff1a;WRONGPASS invalid username-password pair or user is disabled 当前redis版本为7.2.4 一、问题分析 默认情况下&#xff0c;Redis 7.0 使用默认用户名 default 和空密码进行身份验证。如果未设置 requirepass&#xff0c;则默认用户名…

C++之提高篇

1.标准输入输出流 cin与cout的使用&#xff0c;就不多说了&#xff0c;说一个有关保留小数位数的操作&#xff0c;使用ostream对象的precision&#xff08;&#xff09;方法&#xff0c;表达的意思是数字总共有几位&#xff0c;注意&#xff0c;此时是包括整数部分的&#xff…

Charles抓取安卓应用https包演示

一、准备软件 夜神安卓模拟器 (yeshen.com) Charles (charlesproxy.com) 二、配置抓包 2.1 Charles安装PC根证书 记住这里的ip端口 三、安卓模拟器配置 3.1 配置安卓客户端网络代理 填写上文的ip端口&#xff0c;保存 3.2 安装根证书 3.2.1 导出根证书 linux主机执行 op…

LeetCode 算法:随机链表的复制 c++

原题链接&#x1f517;&#xff1a;随机链表的复制 复杂度&#xff1a;中等⭐️⭐️ 题目 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由…

[数据集][图像分类]瑜伽动作分类数据集1238张5类别

数据集类型&#xff1a;图像分类用&#xff0c;不可用于目标检测无标注文件 数据集格式&#xff1a;仅仅包含jpg图片&#xff0c;每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数)&#xff1a;1238 分类类别数&#xff1a;5 类别名称:["downdog","godde…

基于YOLOv5的PCB板缺陷检测系统的设计与实现

简介 随着电子设备的广泛应用&#xff0c;PCB&#xff08;印刷电路板&#xff09;作为其核心部件&#xff0c;其质量和可靠性至关重要。然而&#xff0c;PCB生产过程中常常会出现各种缺陷&#xff0c;如鼠咬伤、开路、短路、杂散、伪铜等。这些缺陷可能导致设备故障&#xff0…

ASP.NET MVC-简单例子

环境&#xff1a; win10&#xff0c;.NET Framework 4.6.1 参考&#xff1a; ASP.NET MVC 简介 | 菜鸟教程 https://www.runoob.com/aspnet/mvc-intro.html 准备 查看 net framework 版本: cmd-> C:\Windows\Microsoft.NET\Framework\v4.0.30319>MSBuild /version Mic…

C语言笔记第16篇:编译和链接

1、翻译环境和运行环境 在ANSI C的任何一种实现中&#xff0c;存在两个不同的环境。 第1种是翻译环境&#xff0c;在这个环境中源代码被转换为可执行机器指令&#xff08;二进制指令&#xff09; 第2种是执行环境&#xff0c;它用于实际执行代码 2、翻译环境 那翻译环境是怎…

动态ARP

定义 动态ARP表项由ARP协议通过ARP报文自动生成和维护&#xff0c;可以被老化&#xff0c;可以被新的ARP报文更新&#xff0c;可以被静态ARP表项覆盖。 动态ARP适用于拓扑结构复杂、通信实时性要求高的网络。 ARP地址解析过程 动态ARP通过广播ARP请求和单播ARP应答这两个过…

软件测试笔记

一、介绍 软件测试是为了尽可能多地发现软件系统中的错误而不是证明软件的正确性。 1、软件缺陷是什么&#xff1f; 软件在使用过程中存在的任何问题都叫软件的缺陷&#xff0c;简称bug。 缺陷的判定标准 软件未实现需求说明书中明确要求的功能——少功能 软件出现了需求说…

经典游戏案例:愤怒的小鸟

学习目标&#xff1a;愤怒的小鸟核心玩法 游戏画面 项目结构目录 部分核心代码 using System.Collections; using System.Collections.Generic; using birds; using utils; using UnityEngine;public class GameManager : MonoBehaviour {public static GameManager sInstanc…

【免费】中国电子学会2024年03月份青少年软件编程Python等级考试试卷一级真题(含答案)

2024-03 Python一级真题 分数&#xff1a;100 题数&#xff1a;37 测试时长&#xff1a;60min 一、单选题(共25题&#xff0c;共50分) 1. 下列哪个命令&#xff0c;可以将2024转换成2024 呢&#xff1f;&#xff08; A&#xff09;(2分) A.str(2024) B.int(2024) C.fl…

Flutter Android 调试桥 (adb)

客户端&#xff1a;用于发送命令。客户端在开发计算机上运行。您可以通过发出 adb 命令从命令行终端调用客户端。 守护程序adbd&#xff1a;用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。 服务器&#xff1a;用于管理客户端与守护程序之间的通信。服务器在开…

fastapi+vue3+primeflex前后端分离开发项目环境搭建

创建后端项目 创建文件夹&#xff1a; mkdir backend创建python虚拟环境&#xff1a; python -m venv venv使用Pycharm打开文件夹&#xff0c;然后配置python解释器为venv虚拟环境。 安装fastapi&#xff1a; pip install "fastapi[all]"编写第一个程序&#xf…

牛顿迭代法(求解整数的近似平方根)

情景再现 面试官&#xff1a;给你一个整数怎样最快求解他的近似平方根&#xff1f; 小白&#xff1a;可以用while循环呀&#xff01; 面试官&#xff1a;有没有更好的方法&#xff1f; 小白&#xff1a;可以从这个数的左右两边开始迭代。 面试官&#xff1a;除了这个呢&#xf…