asp网站源码 生成静态,免费h5在线制作,网站一级目录,海报图片怎么设计制作Git快速入门 文章目录 Git快速入门0.前言1.安装和配置2.新建版本库2.1.本地创建2.2.云端下载 3.版本管理3.1.添加和提交文件3.2.回退版本3.2.1.soft模式3.2.2.mixed模式3.2.3.hard模式3.2.4.使用场景 3.3.查看版本差异3.4.忽略文件 4.云端配置4.1.Github4.1.1.SSH配置4.1.2.关联…Git快速入门 文章目录 Git快速入门0.前言1.安装和配置2.新建版本库2.1.本地创建2.2.云端下载 3.版本管理3.1.添加和提交文件3.2.回退版本3.2.1.soft模式3.2.2.mixed模式3.2.3.hard模式3.2.4.使用场景 3.3.查看版本差异3.4.忽略文件 4.云端配置4.1.Github4.1.1.SSH配置4.1.2.关联本地仓库和远程仓库 4.2.Gitee4.3.GitLab 5.在VSCode中使用Git5.1.配置Git 0.前言
前两天刷视频刷到Git的教学视频才突然发现自己大学四年居然连Git都不会用实在是太蠢了。今天也是熬到周五了干点自己的事囫囵吞枣地学个Git吧
虽然发这篇博客确实是周五发的但其实这个Flag是上上周五立的
当然了鉴于笔者水平很差如果想要精通Git这篇笔记是远远不够的。如果只是想用一下我觉得看这篇笔记还是OK的。作为方便其他初学者参考的笔记笔者尽可能详细记录争取看了就能会。
本篇笔记参考视频【GeekHour】一小时Git教程_哔哩哔哩_bilibili
强烈推荐如果有时间的话去看一下这位UP的视频动画精美内容详细非常不错
需要强调的是这个东西最多最多也只是一个工具不要喧宾夺主。
1.安装和配置
进入Git官网Git - Downloads (git-scm.com)下载自己操作系统对应的版本即可。
安装过程中需要注意的点不多。几乎可以一路默认配置除了这里需要选择你常用的编译器 安装完毕后打开Git CMD注意不是普通CMD输入
git -v能够正确显示版本号安装成功。
安装完毕后我们配置用户名和邮箱。在命令行中先后输入下面两行代码
git config --global user.name xxx
git config --global user.email xxxxxx.com这两行代码输入完毕后是没有答复的不用担心。配置完后可以输入下面这条指令来查看是否配置成功
git config --list可以看到没有问题。
2.新建版本库
版本库又名仓库英文名Repository简称Repo。仓库通俗来说就是目录。创建仓库有两种途径一种是在本地创建一种是从云端下载。
2.1.本地创建
首先需要找到一个合适的位置创建一个空目录右键选择Open Git Bash here 输入
git init可以看到在Git Learning目录下新建了一个.git文件夹。但是细心的朋友可能会发现文件夹是空的 这是因为.git文件夹是隐藏的我们在查看中勾选显示隐藏的项目 这样就能看到这个文件夹了 不过平时不需要看到只是在这里做演示。平时完全可以隐藏掉这样可以防止误删。
2.2.云端下载
我们还可以通过git命令直接从Github或Gitee上下载自己或别人的仓库在命令行输入
git clone https://gitee.com/xxxxxxxxx
git clone https://github.com/xxxxxxxx稍等片刻即可。
3.版本管理
在正式开始进行版本管理之前我们要先了解一下Git的工作区域和文件状态。这一部分强烈推荐看这段视频一共就3分钟这里仅放两张图。视频链接04.工作区域和文件状态_哔哩哔哩_bilibili 3.1.添加和提交文件
编辑好新文件后可以通过以下三种方式将文件添加到暂存区
git add file1.txt
git add *.txt
git add .第一条指令是只添加某一文件第二条指令是将所有.txt格式的文件添加到暂存区第三条指令是将文件夹内所有文件都添加到暂存区。
比如我们输入
git add file1.txt然后输入
git status从上到下可以看到No commits yet即还没有被提交到本地仓库然后Changes to be committed这是add到“cache”中但是还未“commit”的file1.txt然后Untracked files这是连add都没add的文件。
我们再输入
git add .
git status可以看到都提交到暂存区了。
添加到暂存区后需要用commit指令将暂存区里的文件提交到仓库。输入
git commit -m log
git commit如果用第一条则在-m后面即log的位置输入你本次提交留下的日志。如果用第二条则会跳转你安装时默认的编译器。
先试试第一条 我们查看一下日志输入
git log我们创建三个新文件然后重新上传到暂存区然后试一试不加-m会发生什么。从暂存区提交到仓库之前还是先看一看状态 现在提交到仓库 稍等片刻后自动跳转到了VSCode这是我在安装Git时配置的默认editor。我们在光标位置输入这次的log信息然后在最后一行输入
:wq注意输入的是半角冒号。 输入完后Ctrls保存文件然后直接关闭文件终端就会自动更新 再看一看log 到这里就可以给我刚刚写的log纠错说明在VSCode中写log并不需要输入:wq退出而是直接保存并退出即可。
3.2.回退版本
回退版本分为3个类型分别是soft、hard和mixed默认的模式是mixed。
我们先在分别在file1和file2中输入直接打开文本文件打字就行
file1-v3
随便说点话吧file2-v3
实在不知道说什么了哥然后看一看状态 该add了 然后commit 为了便于观察我们再在file1、2、3中分别输入
file1-v4
没有删掉刚刚的内容哦只是在后面又加了一句话file2-v4
把刚刚的那些废话删了现在只剩这一句了file3-v4
我是纯纯的新文件同时新建一个file4.txt删掉之前这三个文件 还是先add然后看看status 可以看到它是误以为我删了俩改名了一个这个其实无所谓。直接commit后看log 3.2.1.soft模式
现在来试验一下版本回退先试试soft模式
git reset --soft 4e30568f302f979cde4debe02c434f9e7ce18ea5注意4e30568f302f979cde4debe02c434f9e7ce18ea5是v3的版本号这个每个人的都不同需要自己复制。
然后瞅瞅log 再看看file1 再看看status 可见soft模式是回退到提交至本地仓库那一步即回退到commit之前。
3.2.2.mixed模式
我们重新commit 然后输入
git reset --mixed 4e30568f302f979cde4debe02c434f9e7ce18ea5然后瞅瞅log 再看看file1 再看看status 可见soft模式是回退到提交至暂存区那一步即回退到add之前。
3.2.3.hard模式
我们重新add并commit 然后输入
git reset --hard 4e30568f302f979cde4debe02c434f9e7ce18ea5然后瞅瞅log 再看看file1 再看看status 可见soft模式是回退到v3版本最初的样子不论是文件中的内容还是项目中包含哪些文件都是最初的样子。
但是这时候就出现了一个问题这些文件都没了我后悔了该怎么办别急可以回溯。输入
git reflog然后复制v4的版本号输入
git reset --hard b1e08a0注意这里的版本号是b1e08a0 HEAD{1}: commit: v4这一行的版本号。
看看log 回溯成功了。
3.2.4.使用场景
如果你已经更新到v4觉得v3相比于v2没什么区别单开一个版本号太浪费了那可以用soft或mixed模式回退到v2然后重新commit即可。
一般不推荐使用hard除非你百分之百确定这玩意没用了。不过即便是用了hard文件更改没了也不是不可挽回的回溯就成。
3.3.查看版本差异
在文件夹内新建一个file5.txt 然后依次add、commit。随后我们更改一下file5.txt里的内容在命令行中输入
get diff如果我们add后再输入get diff这个差异就不见了 也就是说git diff这个命令是查看上一次commit之后这一次add之前的差异。如果想查看上一次commit之后这一次add之后、commit之前的差异需要输入
git diff HEAD也可以对比add前后的差异
git diff --cached也可以查看不同版本的差异。我们先把这个版本commit一下 然后查看之前的版本号 我们对比v6和v5的区别版本号分别为6fc94a042c9e8f7b73ed53fab5bbe83ed27be8e6和e8dda090421cfd0f9d59ead9f976b9d79736fc54输入
git diff 6fc94a042c9e8f7b73ed53fab5bbe83ed27be8e6 e8dda090421cfd0f9d59ead9f976b9d79736fc54如果要比较某一版本和当前版本的差异可以不输入当前版本的版本号而是用HEAD代替如
git diff HEAD e8dda090421cfd0f9d59ead9f976b9d79736fc54更经常用的命令是比较当前版本和上一版本的差异输入
git diff HEAD~ HEAD这个命令也可以变为
git diff HEAD~2 HEAD这是查看当前版本和两个版本之前版本的差异。
也可以单独查看某一个文件的差异先整体看一下和三个版本之前的差异
git diff HEAD~3 HEAD可以看到有很多文件都不同。我们输入
git diff HEAD~3 HEAD file2.txt就只显示file2的差异了。
3.4.忽略文件
可以参考这篇博客[Git 开发必备 .gitignore 详解【建议收藏】-CSDN博客](https://blog.csdn.net/nyist_zxp/article/details/119887324?ops_request_misc%7B%22request%5Fid%22%3A%22d4ab1f51b41cda7446b6cff986a5141f%22%2C%22scm%22%3A%2220140713.130102334…%22%7Drequest_idd4ab1f51b41cda7446b6cff986a5141fbiz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2alltop_positive~default-1-119887324-null-null.142v100pc_search_result_base2utm_termGit ignorespm1018.2226.3001.4187)
常用的忽略一般是忽略某个目录一般编译产生的文件都会放在某个文件夹下这个文件夹我们一般无需上传将其忽略掉即可。举个例子这是一个STM32H7项目的文件夹
.
├─Core
│ ├─Inc
│ └─Src
├─Drivers
│ ├─CMSIS
│ │ ├─Core
│ │ │ ├─Include
│ │ │ └─Template
│ │ │ └─ARMv8-M
│ │ ├─Core_A
│ │ │ ├─Include
│ │ │ └─Source
│ │ ├─Device
│ │ │ └─ST
│ │ │ └─STM32H7xx
│ │ │ ├─Include
│ │ │ └─Source
│ │ │ └─Templates
│ │ │ ├─arm
│ │ │ ├─gcc
│ │ │ └─iar
│ │ │ └─linker
│ │ ├─docs
│ │ │ └─General
│ │ │ └─html
│ │ ├─DSP
│ │ │ ├─DSP_Lib_TestSuite
│ │ │ │ ├─Common
│ │ │ │ │ ├─inc
│ │ │ │ │ │ ├─basic_math_tests
│ │ │ │ │ │ ├─complex_math_tests
│ │ │ │ │ │ ├─controller_tests
│ │ │ │ │ │ ├─fast_math_tests
│ │ │ │ │ │ ├─filtering_tests
│ │ │ │ │ │ ├─intrinsics_tests
│ │ │ │ │ │ ├─matrix_tests
│ │ │ │ │ │ ├─statistics_tests
│ │ │ │ │ │ ├─support_tests
│ │ │ │ │ │ ├─templates
│ │ │ │ │ │ └─transform_tests
│ │ │ │ │ ├─JTest
│ │ │ │ │ │ ├─inc
│ │ │ │ │ │ │ ├─arr_desc
│ │ │ │ │ │ │ ├─opt_arg
│ │ │ │ │ │ │ └─util
│ │ │ │ │ │ └─src
│ │ │ │ │ ├─platform
│ │ │ │ │ │ ├─ARMCC
│ │ │ │ │ │ ├─ARMCLANG
│ │ │ │ │ │ └─GCC
│ │ │ │ │ └─src
│ │ │ │ │ ├─basic_math_tests
│ │ │ │ │ ├─complex_math_tests
│ │ │ │ │ ├─controller_tests
│ │ │ │ │ ├─fast_math_tests
│ │ │ │ │ ├─filtering_tests
│ │ │ │ │ ├─intrinsics_tests
│ │ │ │ │ ├─matrix_tests
│ │ │ │ │ ├─statistics_tests
│ │ │ │ │ ├─support_tests
│ │ │ │ │ └─transform_tests
│ │ │ │ ├─DspLibTest_FVP
│ │ │ │ ├─DspLibTest_FVP_A5
│ │ │ │ │ └─RTE
│ │ │ │ │ ├─CMSIS
│ │ │ │ │ └─Device
│ │ │ │ │ └─ARMCA5
│ │ │ │ ├─DspLibTest_MPS2
│ │ │ │ ├─DspLibTest_SV_FVP
│ │ │ │ ├─DspLibTest_SV_MPS2
│ │ │ │ └─RefLibs
│ │ │ │ ├─inc
│ │ │ │ └─src
│ │ │ │ ├─BasicMathFunctions
│ │ │ │ ├─ComplexMathFunctions
│ │ │ │ ├─ControllerFunctions
│ │ │ │ ├─FastMathFunctions
│ │ │ │ ├─FilteringFunctions
│ │ │ │ ├─HelperFunctions
│ │ │ │ ├─Intrinsics
│ │ │ │ ├─MatrixFunctions
│ │ │ │ ├─StatisticsFunctions
│ │ │ │ ├─SupportFunctions
│ │ │ │ └─TransformFunctions
│ │ │ ├─Examples
│ │ │ │ └─ARM
│ │ │ │ ├─arm_class_marks_example
│ │ │ │ │ └─RTE
│ │ │ │ │ └─Device
│ │ │ │ │ ├─ARMCM0
│ │ │ │ │ ├─ARMCM3
│ │ │ │ │ ├─ARMCM4_FP
│ │ │ │ │ └─ARMCM7_SP
│ │ │ │ ├─arm_convolution_example
│ │ │ │ │ └─RTE
│ │ │ │ │ └─Device
│ │ │ │ │ ├─ARMCM0
│ │ │ │ │ ├─ARMCM3
│ │ │ │ │ ├─ARMCM4_FP
│ │ │ │ │ └─ARMCM7_SP
│ │ │ │ ├─arm_dotproduct_example
│ │ │ │ │ └─RTE
│ │ │ │ │ └─Device
│ │ │ │ │ ├─ARMCM0
│ │ │ │ │ ├─ARMCM3
│ │ │ │ │ ├─ARMCM4_FP
│ │ │ │ │ └─ARMCM7_SP
│ │ │ │ ├─arm_fft_bin_example
│ │ │ │ │ └─RTE
│ │ │ │ │ └─Device
│ │ │ │ │ ├─ARMCM0
│ │ │ │ │ ├─ARMCM3
│ │ │ │ │ ├─ARMCM4_FP
│ │ │ │ │ └─ARMCM7_SP
│ │ │ │ ├─arm_fir_example
│ │ │ │ │ └─RTE
│ │ │ │ │ └─Device
│ │ │ │ │ ├─ARMCM0
│ │ │ │ │ ├─ARMCM3
│ │ │ │ │ ├─ARMCM4_FP
│ │ │ │ │ └─ARMCM7_SP
│ │ │ │ ├─arm_graphic_equalizer_example
│ │ │ │ │ └─RTE
│ │ │ │ │ └─Device
│ │ │ │ │ ├─ARMCM0
│ │ │ │ │ ├─ARMCM3
│ │ │ │ │ ├─ARMCM4_FP
│ │ │ │ │ └─ARMCM7_SP
│ │ │ │ ├─arm_linear_interp_example
│ │ │ │ │ └─RTE
│ │ │ │ │ └─Device
│ │ │ │ │ ├─ARMCM0
│ │ │ │ │ ├─ARMCM3
│ │ │ │ │ ├─ARMCM4_FP
│ │ │ │ │ └─ARMCM7_SP
│ │ │ │ ├─arm_matrix_example
│ │ │ │ │ └─RTE
│ │ │ │ │ └─Device
│ │ │ │ │ ├─ARMCM0
│ │ │ │ │ ├─ARMCM3
│ │ │ │ │ ├─ARMCM4_FP
│ │ │ │ │ └─ARMCM7_SP
│ │ │ │ ├─arm_signal_converge_example
│ │ │ │ │ └─RTE
│ │ │ │ │ └─Device
│ │ │ │ │ ├─ARMCM0
│ │ │ │ │ ├─ARMCM3
│ │ │ │ │ ├─ARMCM4_FP
│ │ │ │ │ └─ARMCM7_SP
│ │ │ │ ├─arm_sin_cos_example
│ │ │ │ │ └─RTE
│ │ │ │ │ └─Device
│ │ │ │ │ ├─ARMCM0
│ │ │ │ │ ├─ARMCM3
│ │ │ │ │ ├─ARMCM4_FP
│ │ │ │ │ └─ARMCM7_SP
│ │ │ │ ├─arm_variance_example
│ │ │ │ │ └─RTE
│ │ │ │ │ └─Device
│ │ │ │ │ ├─ARMCM0
│ │ │ │ │ ├─ARMCM3
│ │ │ │ │ ├─ARMCM4_FP
│ │ │ │ │ └─ARMCM7_SP
│ │ │ │ └─boot
│ │ │ ├─Include
│ │ │ ├─Lib
│ │ │ │ ├─ARM
│ │ │ │ ├─GCC
│ │ │ │ └─IAR
│ │ │ ├─PythonWrapper
│ │ │ │ └─cmsisdsp_pkg
│ │ │ │ └─src
│ │ │ └─Source
│ │ │ ├─BasicMathFunctions
│ │ │ ├─CommonTables
│ │ │ ├─ComplexMathFunctions
│ │ │ ├─ControllerFunctions
│ │ │ ├─FastMathFunctions
│ │ │ ├─FilteringFunctions
│ │ │ ├─MatrixFunctions
│ │ │ ├─StatisticsFunctions
│ │ │ ├─SupportFunctions
│ │ │ └─TransformFunctions
│ │ ├─Include
│ │ ├─NN
│ │ │ ├─Examples
│ │ │ │ ├─ARM
│ │ │ │ │ └─arm_nn_examples
│ │ │ │ │ ├─cifar10
│ │ │ │ │ │ └─RTE
│ │ │ │ │ │ ├─Compiler
│ │ │ │ │ │ ├─Device
│ │ │ │ │ │ │ ├─ARMCM0
│ │ │ │ │ │ │ ├─ARMCM3
│ │ │ │ │ │ │ ├─ARMCM4_FP
│ │ │ │ │ │ │ └─ARMCM7_SP
│ │ │ │ │ │ ├─_ARMCM0
│ │ │ │ │ │ ├─_ARMCM3
│ │ │ │ │ │ ├─_ARMCM4_FP
│ │ │ │ │ │ └─_ARMCM7_SP
│ │ │ │ │ └─gru
│ │ │ │ │ └─RTE
│ │ │ │ │ ├─Compiler
│ │ │ │ │ ├─Device
│ │ │ │ │ │ ├─ARMCM0
│ │ │ │ │ │ ├─ARMCM3
│ │ │ │ │ │ ├─ARMCM4_FP
│ │ │ │ │ │ └─ARMCM7_SP
│ │ │ │ │ ├─_ARMCM0
│ │ │ │ │ ├─_ARMCM3
│ │ │ │ │ ├─_ARMCM4_FP
│ │ │ │ │ └─_ARMCM7_SP
│ │ │ │ └─IAR
│ │ │ │ └─iar_nn_examples
│ │ │ │ ├─NN-example-cifar10
│ │ │ │ └─NN-example-gru
│ │ │ ├─Include
│ │ │ ├─NN_Lib_Tests
│ │ │ │ └─nn_test
│ │ │ │ ├─Ref_Implementations
│ │ │ │ └─RTE
│ │ │ │ ├─Device
│ │ │ │ │ ├─ARMCM0
│ │ │ │ │ ├─ARMCM3
│ │ │ │ │ ├─ARMCM4
│ │ │ │ │ ├─ARMCM4_FP
│ │ │ │ │ ├─ARMCM7_SP
│ │ │ │ │ └─STM32F411RETx
│ │ │ │ ├─_ARMCM0
│ │ │ │ ├─_ARMCM3
│ │ │ │ ├─_ARMCM4_FP
│ │ │ │ └─_ARMCM7_SP
│ │ │ └─Source
│ │ │ ├─ActivationFunctions
│ │ │ ├─ConvolutionFunctions
│ │ │ ├─FullyConnectedFunctions
│ │ │ ├─NNSupportFunctions
│ │ │ ├─PoolingFunctions
│ │ │ └─SoftmaxFunctions
│ │ ├─RTOS
│ │ │ └─Template
│ │ └─RTOS2
│ │ ├─Include
│ │ ├─Source
│ │ └─Template
│ └─STM32H7xx_HAL_Driver
│ ├─Inc
│ │ └─Legacy
│ └─Src
├─Function
└─MDK-ARM├─DebugConfig├─RTE│ └─_Test1.0.0└─Test1.0.0假设我们需要忽略Drivers文件夹和MDK-ARM中的RTE文件夹我们应该如何操作呢输入
vi .gitignore然后输入
Drivers/
MDK-ARM/RTE/然后按Esc输入:wq 即可退出。
看一下状态 可以看到并没有显示Drivers文件夹。
4.云端配置
4.1.Github
自行创建Github账号。
4.1.1.SSH配置
进入GitHub创建自己的仓库 配置如下注意不要勾选其他内容否则不会显示引导界面 然后会进入一个引导界面 打开Git Bash终端然后先后输入
cd
ssh-keygen -t rsa -b 4096然后需要手动输入一个名称这个可以直接回车让他自动生成需要连续回车三下 然后先后输入
cd .ssh
ls -ltr没有后缀的是私钥文件谁也不要给有后缀的是公钥文件。输入
vi id_rsa.pub复制内容
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDQiflzS5ow......PRv86w Fangzhou TanLAPTOP-JQFPEMOQ回到Github点击头像找到Settings 然后找到SSH配置 名字是任意的想是啥就是啥不用和仓库名一样。
设置好后在引导界面复制SSH 到本地的文件夹打开git bash终端然后输入注意在输入前要关闭代理
git clone gitgithub.com:LengYuuu/Hello_Github.git需要手动输入yes即可完成克隆。如下所示 在文件夹中加点文件 然后在中断中先后输入
git add .
git commit -m first commit
git push去Github刷新一下 成功上传
4.1.2.关联本地仓库和远程仓库
写不动了实在是后面再补吧
4.2.Gitee
和Github几乎一样。
4.3.GitLab
私有化部署
暂时不需要私有化部署也是先挖坑吧。
5.在VSCode中使用Git
5.1.配置Git
如果按照刚刚的步骤下载Git但是打开VSCode显示 那可能是Git的环境变量没有配好。在环境变量中加入 然后在命令行中检查一下 重启VSCode 如果还是没有找到Git则点击文件 - 首选项 - 设置搜索 git.path 然后手动设置 Git 的完整路径例如
json
git.path: C:\\Program Files\\Git\\bin\\git.exe然后保存重启VSCode即可。 未完待续… 先把学完的部分发出来后面慢慢学慢慢补齐