Git笔记

Typora+Git搭建云笔记本 前言 熟悉Git的操作 拥有码云账号 注意:由于Typora的限制,此方式只适用于做文本+图片比较,无法存放其他类型的文件 Typora安装与设置 安装软件 Typora https://www.typora.io/windows/typora-setup-x64.exe Git https://git-scm.com/download/win Git具体操作可以参考教程 http... 阅读详情

1.git是分布式版本控制系统;

2.版本控制系统分为集中式,分布式

3.集中式版本控制系统,版本库是集中存放在中央服务器的,中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。

4.集中式与分布式的区别
①集中式版本控制系统commit必须联网,分布式不需要联网
②虽然分布式不需要联网也可以进行提交操作,但是在协作开发中也需要建立一个中央服务器,用于多人开发提交
③这里有几个概念:本地、服务器、中央服务器(远程服务器)。每一次
commit是提交到本本机的服务器,这个不需要联网,正所谓的版本管理,就是要方便我
们知道每一个版本,比如回到之前的某个版本(这是其一),而且回退到某个之前的版
本,也是从本机的服务器拿的数据,这些都不需要联网。而 SVN 的每一次 commit 都需
要联网,这就需要网络的等待。 Git只有在Push、pull 的时候需要联网,而我们平时更
多的操作应是commit。
再有就是,断网的情况下,SVN也能工作,但是由于没有版本控制的记录,当多人修改
后就比较难以快速的合并,但是Git都在本地保存了版本记录,所以大家合并起来就方便
得多了。

5.所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB

.git指令集
mkdir xxx 创建xxx文件夹
cd 移动
pwd 显示当前目录
git init 将当前目录变成Git可以管理的仓库
ls 查看当前目录下的文件
ls -ah 查看当前目录下的文件(包括隐藏文件)
git add xxx 告诉Git,把xxx文件添加到仓库
可以add多个文件,一次commit;
git commit -m “xxxxx” 告诉Git,把文件提交到仓库,-m为本次提交说明

提交成功后:
[master 8509df9] 提交了文件
1 file changed, 2 insertions(+)
create mode 100644 readme.txt
解读:
1 file changed:1个文件被改动(我们新添加的readme.txt文件);2 insertions:插入了两行内容(readme.txt有两行内容)。

git status 时刻掌握仓库当前的状态
git diff 查看difference
git log 查看历史记录
git reset --hard HEAD^ 版本回退到上一步
HEAD指向的版本就是当前版本,
git reflog 记录每一次命令
cat xxx 查看xxx文件的内容

一:修改文件后没有add和commit
git checkout – xxx
把xxx文件在工作区的修改全部撤销,这里有两种情况:
一种是xxx自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是xxx已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
二:修改文件后执行add没有执行commit
如果修改文件后,执行git add 了,想要撤销,分两步,①将暂存区清空
git reset HEAD xxx 可以把暂存区的修改撤销掉(unstage),重新放回工作区
②执行git checkout命令撤销修改
git checkout – xxx
三:修改文件后,执行了add和commit
git reset --hard HEAD^
相当于以下场景

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

rm test.txt 删除test.txt文件,但是并没有删掉版本库中的该文件
可以使用git checkout – test.txt 还原
如果要删除掉版本库中的文件需要执行
git rm test.txt 命令再进行commit

如果未执行rm test.txt命令直接执行git rm test.txt命令直接将工作区和版本库中该文件都删掉了最后执行commit命令

如果修改的文件没有commit,删除后,无法还原修改后的文件,只能恢复到上一个commit的HEAD

git remote add origin git@github(gitee).com:path/repo-name.git 关联一个远程库
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
git push origin master 把本地master分支的最新修改推送至GitHub
git clone 你的githup地址 克隆命令
查看分支:git branch
创建分支:git branch xxx
切换分支:git checkout xxx
创建+切换分支:git checkout -b xxx
合并某分支到当前分支:git merge xxx
删除分支:git branch -d xxx
git log --graph 可以看到分支合并图。
git merge --no-ff -m " " xxx 禁用快进模式,合并时会再commit一次
如果不禁用,是将主分支的指针直接指向需要合并的分支
git stash 将当前工作现场隐藏起来
git stash list 查看隐藏的工作现场
git stash drop 恢复工作现场并删除缓存的stash
如果有多个隐藏的工作现场
git stash apply stash@{0} 恢复指定的隐藏工作现场
如果新建的分支add并且commit了,但是现在不想将他融合到主分支,需要销毁git branch -d xxx 会报错 需要写成 git branch -D xxx
git remote -v 查看远程库信息
git tag v1.0 创建v1.0的标签,默认打在最新commit上
git tag 查看所有标签
git tag v0.9 commitId 创建commit id为xxx的标签
git show v1.0 查看标签1.0的具体信息
git tag -a v0.1 -m “version 0.1 released” 1094adb 创建带有说明的标签,用-a指定标签名,-m指定说明文字
git tag -d v0.1 删除标签
git push origin v1.0 远程推送标签
git push origin --tags 一次性推送全部尚未推送的标签
如果需要删除远程库的标签需要先删除本地的标签,然后
git push origin :refs/tags/tagName 删除远程的标签
git remote rm origin 删除关联的远程库
git remote -v 查看远程库信息

多人协作
多人协作的工作模式通常是这样:
首先,可以试图用git push origin branchName推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin branchName推送就能成功!
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to branchName origin/branchName。

工作区和暂存区
git init 后该文件夹就是一个工作区
在该文件夹下.git隐藏文件夹是Git的版本库
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
这里写图片描述

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。
简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
每次修改,如果不用git add到暂存区,那就不会加入到commit中。

git可以忽略特殊文件
有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示Untracked files …
在Git工作区的根目录下创建一个特殊的.gitignore文件
忽略文件的原则是:
忽略操作系统自动生成的文件,比如缩略图等;
忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
遇到需要忽略文件的时候,再研究…

GIT-NOTEBOOK——基于GIT的轻量级笔记软件 git-notebook 一款基于 git 的笔记软件,利用 git 仓库建立属于自己的同步笔记本。 笔记功能 使用 git 作为在线笔记存放的仓库,实现不同设备之间的笔记同步; 使用开发人员常用的 markdown 编辑器进行笔记编辑; 实现图片截图的直接复制黏贴(类似 QQ 截图直接黏贴到笔记) 开源地址: gitee源码: https://gitee.com/ericfang/git-notebook 安装包下载:https://gitee.com/ericfang/git-notebook/ 阅读详情

相关推荐

廖雪峰Git教程笔记

文章目录1 什么是Git1.1 Git的诞生1.2 集中式vs分布式1.3 安装Git1.3.1 在Windows上安装Git1.3.2 在Linux上安装Git1.4 创建第一个项目`learngit`1.4.1 创建版本库1.4.2 初始化仓库1.4.3 添加文件到版本库1.4.4 Git使用小结2 版本控制2.1 版本更新2.1.1 `git status`查看仓库状态2.1.2 `git ...

凯哥大数据——刘凯的博客 6476

git上传过滤忽略文件

git上传过滤忽略文件 有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等 在主目录下建立".gitignore"文件,此文件有如下规则: 忽略文件中的空行或以井号(#)开始的行将会被忽略。 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,...

weixin_42981419的博客 3344

【Obsidian】【Git】使用gitee同步/保存obsidian笔记

Obisidian是一款markdown软件,使用它可以方便地记笔记、记录科研日常。然而如果在多个设备上使用obsidian,会牵扯到笔记/vault/仓库同步问题。下面来介绍如何用git管理obsidian。

kiong_的博客 1万+

Git 上传忽略文件设置 .ignore exclude

git分布式版本控制系统的火热,相信很多人都用过,但是没有系统的学习,提交补丁的时候,往往把自己编译的.o;.obj;.class全部提交上去,来看看git上传时怎么忽略掉一些不表要的文件。通过设置.gitignore 实现公共忽略,设置exclude实现私人忽略。

来自幻想 2万+

Obsidian用Git同步笔记

问题 Obsidian需要家里和单位电脑同步,以及定时备份,之前试过使用百度网盘和Github备份数据。百度网盘提供了一些API上传和下载数据,搭配Linux的crontab定时任务,能实现基本备份功能,但速度太慢。Github效果不错,但是常常连不通。 这次选择了 Obsidian 的三方插件+Gitee结合的方式,设置半小时备份一次,比较完美地解决了备份问题。 原理 Obsidian中的插件只是简单地执行git pull/commit/pull等命令,需要先在本机配置好git环境,然后与Obsi

谢彦的技术博客 1万+

RK3399跨楼层机器人:SLAM技术与商业应用解析

SLAM(即时定位与地图构建)技术是移动机器人自主导航的核心,通过激光雷达、视觉传感器等多源数据融合实现厘米级定位。RK3399作为高性能嵌入式平台,其六核架构和Mali GPU能高效处理SLAM算法与传感器数据。在商业场景中,这种技术组合可支撑机器人实现跨楼层物资配送、仓库盘点等复杂任务。以SLAMTEC Hermes平台为例,其模块化设计支持电梯控制集成,配合双深度相机和360°激光雷达,在医疗、物流等领域已实现12分钟平均配送效率和99.7%的识别准确率。

weixin_30376083的博客 620

Git .gitignore文件忽略

Git提供了文件忽略功能。当对工作区某个目录或者某些文件设置了忽略后,git将不会对它们进行追踪。 一、建立.gitignore文件在项目根目录下创建一个名为.gitignore的文件(注意文件的前面有个点),用于记录忽略规则。 注:windows下不可以按常规方法新建.gitignore文件,需要在命令行中进行创建:echo >.gitignore,另外git base下的命令如下:touch

1万+

SAP财务凭证实战:如何用Coding Block快速添加客户化字段(附ABAP代码)

本文详细介绍了在SAP财务凭证中利用Coding Block技术快速添加客户化字段的完整流程,包括技术架构解析、实战配置步骤(OBC4/OB41)及ABAP增强开发。通过案例演示如何高效扩展字段(如增长曲线类型),实现全流程集成且无需修改数据表,显著提升财务凭证的灵活性和可追溯性。

weixin_29271263的博客 227

GitNote基于git的个人云笔记

优点 可以存储到git服务(如github,giteee)中的能看到历史版本的git记事本工具。 git 是一个很棒的工具,GitNote 支持 git 的全部特性,并且不依赖本地 Git 环境. 你可以使用任何支持 Git 的仓库. https://github.com/ 免费版支持无限私有仓库 https://BitBucket.com/ 免费版支持私有仓库 https://gitlab.c...

架构师与哈苏 1768

实战指南:基于ELK与Grafana构建天融信防火墙日志可视化看板

本文详细介绍了如何基于ELK与Grafana构建天融信防火墙日志可视化看板,包括环境准备、日志收集与解析配置、Elasticsearch存储优化、Grafana看板设计等关键步骤。通过实战案例和优化技巧,帮助用户高效处理天融信防火墙日志,实现安全态势的可视化监控与分析。

weixin_34246529的博客 226

机器学习发展历史及现状(重要的期刊,会议,大牛总结)

1 引言 机器学习是指通过计算机学习数据中的内在规律性信息,获得新的经验和知识,以提高计算机的智能性,使计算机能够像人那样去决策。随着各行业对数据的需求量增多,对处理和分析数据的效率要求变高,一系列机器学习算法应运而生。机器学习算法主要是指通过数学及统计方法求解最优化问题的步骤和过程。针对不同的数据和不同模型需求,选择和使用适当的的机器学习算法可以更高效地解决一些实际问题。本文将从机器学习的起源...

Oscar2018的博客 5万+

Git 学习笔记

这篇记录记录了我在git学习中常常用到的指令,方便在未来进行查阅。此篇文章也会根据笔者的学习进度持续更新。

2302_79769914的博客 1505

三相电机控制中的端电压、相电压与线电压波形解析

本文深入解析了三相电机控制中端电压、相电压与线电压的核心概念与波形差异。通过对比方波控制、SPWM和SVPWM三种主流控制策略下的实测波形特征,揭示了不同控制逻辑对电压波形(如梯形波、正弦波、马鞍波)的影响。文章重点阐述了SVPWM控制如何通过生成马鞍波形端电压来提高直流母线电压利用率,并提供了实用的波形测量与调试指南,帮助工程师深入理解电机控制原理并进行有效调试。

qsc901234567的博客 1400

【YY笔记】Git使用(狂神git教程笔记)

前言 教程链接:【狂神说Java】Git最新教程通俗易懂;感谢狂神免费分享教程 为了方便OneNote直接粘贴过来的笔记 如有疏漏,欢迎友好交流 正文

weixin_43968560的博客 263

Windows 下 OpenClaw(小龙虾) 安装全记录:从零到一的保姆级图文教程(持续更新中)

本文主要介绍了Windows 下 OpenClaw 安装全记录:从零到一的保姆级图文教程,希望能对学习使用OpenClaw 的同学们有所帮助。 文章目录 1. 背景 2. 实战教程 2.1 步骤一 安装Node.js 2.2 步骤二:安装并配置OpenClaw 2.3 步骤三:配置模型 2.4 步骤四:对话 3. 后续使用步骤

weixin_43178406的博客 16万+

【异常】OpenClaw 连接异常This site can‘t be reached 127.0.0.1 refused to connect Try: Checking the proxy

在访问OpenClaw相关服务时,浏览器提示如下异常信息,无法正常加载页面:Try:补充说明:该报错仅出现于本地访问场景(127.0.0.1为本地回环地址),涉及OpenClaw核心服务的本地连接交互,无外部网络及敏感信息泄露风险。

奶爸的编程之路,也就一周冷个三天 1484

【Git 学习笔记_11】第五章 在 Git 仓库存入附加信息(上)

本篇为《Git Version Control Cookbook》第二版第五章学习笔记的上半部分,也是全书最精彩的章节之一,主要介绍了一种平时鲜有听闻却非常实用的一个 Git 技巧:添加 Git 笔记(notes)。并结合书中给出的示例代码库,在本地逐一进行了验证。感兴趣的朋友可以先收藏,后续亲自上手尝试一下,相信一定会很有收获的。

PeacefulWinter的博客 1356

Vue3 - 详解实现网站接入钉钉扫码登录功能,钉钉授权生成登录二维码用户用手机扫描二维码登陆,支持弹框式、浏览器单独新开页显示,钉钉扫描二维码登录详细流程及示例代码,最新vue集成钉钉扫码授权登录!

vue3,nuxt3,钉钉,扫码登录,vue3钉钉扫码登陆,钉钉授权第三方WEB网站扫码登录功能,钉钉扫码登录第三方网站,单点登录,二维码不显示,报错,扫了没反应,出错,vue3钉钉扫码登录,内嵌,获取个人信息,pc网页钉钉登录,钉钉扫码登录怎么新开一页,跳页显示二维码,内嵌登录二维码,iframe新页面弹出,弹出一个小窗口显示登录二维码,登录报错,扫码没反应,解决手机点登录报错没反应,官方文档,手机扫描钉钉二维码登录网站,页面弹出一个小窗口而不是打开一个页面,vue3中使用iframe实现另开小窗口扫码登

🏆 前端领域优质创作者 3695

如何利用git实现Typroa云笔记

git仓库应用——笔记云存储

weixin_52342654的博客 808

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

GitNote 基于 Git 的跨平台笔记软件

GitNote 基于 Git 的跨平台笔记软件 为什么 自从工作之后,我开始进行笔记记录,这是一个很棒的习惯.我曾经使用过 EDiary Evernote Onenote Wiz 麦库等,都是一些不错的笔记软件,但是都有一些各式各样的问题,不能满足我的使用. 2013 年,我用 java 编写...

chenglin0632的博客 513

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

git笔记

Git GUI 中文乱码怎么解决

qq_34067058的博客 95

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

当笔记软件整合git同步,会是什么效果?

之前跟大家讨论了富文本的实现,今天的主题是,git同步在笔记软件中的作用,优缺点,及其实现方案。最终还是实现了这个功能,因此可以宣布首个支持git同步的文档软件诞生了= =

u011317090的专栏 1470

Git命令简化笔记

Git命令简化笔记 https://www.boatsky.com/blog/12.html

qq16150277322的专栏 484

git-黑马-笔记

git-黑马-笔记

DaB210的博客 2479
上一篇: springBoot 框架打成jar包,读取不到webapp下的静态文件
下一篇: 内存溢出
蜗牛鸽
博客等级 码龄10年 36粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值