<Git>学习笔记

四个很好的学习git网站:
git - 简明指南
图解Git
Git教程-廖雪峰
Learn Git Branching

还有一个Git常用操作和命令的清单(英文版):
GIT CHEAT SHEET

当然如果你是那种一看英语就头晕的人(程序员最好不要有这种问题),这里有个中文版的可以参考来看:
Git Cheat Sheet中文版

在这里插入图片描述

在这里插入图片描述

一、Git简介

1.Git的诞生

Linus在1991年创建了开源的Linux。

Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git。一个月之内,Linux系统的源码已经由Git管理了。

2008年,GitHub网站上线了,它为开源项目免费提供Git存储。

2.集中式vs分布式

在这里插入图片描述

在这里插入图片描述

二、安装Git

1.Linux

在这里插入图片描述

2.windows

在这里插入图片描述

三、创建版本库

版本库又名仓库,英文名repository,理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

1.创建空目录

  1. mkdir learngit
  2. cd learngit
  3. pwd
    /c/Users/chiu/learngit

2.git init命令把这个目录变成Git可以管理的仓库,当前目录下多了一个.git的目录,这个目录是Git用来追踪管理版本库的。ls -a命令看隐藏目录

把文件添加到版本库

把一个文件放到Git仓库的两步骤:

  1. git add readme.txt
  2. git commit -m "wrote a readme file"

在这里插入图片描述
小结

  1. git init 初始化一个Git仓库
  2. git add <file>添加文件(可多个),git commit -m <message>提交

四、时光机穿梭

  • 要随时掌握工作区的状态,使用git status命令。
  • 如果git status告诉你有文件被修改过,用git diff可以查看修改内容。

1.版本回退

git log查看历史记录:
在这里插入图片描述
每提交一个新版本,实际上Git就会把它们自动串成一条时间线:
在这里插入图片描述
要回退版本,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本。

git reset命令:
在这里插入图片描述
在这里插入图片描述
想回到未来,找到对应版本的commit id(版本号):
在这里插入图片描述
Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向append GPL:
在这里插入图片描述
然后顺便把工作区的文件更新了。所以你让HEAD指向哪个版本号,你就把当前版本定位在哪。

git reflog 记录每一次命令:用来找版本号
在这里插入图片描述
小结

  • git reset --hard commit_id在版本历史间穿梭
  • git log 查看提交历史,以便确定要回退到哪个版本
  • git reflog查看命令历史,以便确定要回到未来的哪个版本

2.工作区和暂存区

工作区
learngit文件夹就是一个工作区。

版本库Repository
工作区有一个隐藏目录.git,不算工作区,而是Git的版本库(Repository)。
在这里插入图片描述
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
在这里插入图片描述
修改readme和新建LICENSE后查看状态:
在这里插入图片描述
readme.txt被修改了,而LICENSE还从来没有被添加过,所以它的状态是Untracked。
在这里插入图片描述
两次git add 后:
在这里插入图片描述
暂存区状态:
在这里插入图片描述
git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。

git commit后:
在这里插入图片描述

在这里插入图片描述

3.管理修改

Git跟踪并管理的是修改,而非文件

git commit提交后,用git diff HEAD – readme.txt命令可以查看工作区版本库里面最新版本的区别:
在这里插入图片描述

每次修改,如果不用git add到暂存区,那就不会加入到commit中。

4.撤销修改

添加了错误的一行,解决方法:

  1. 删掉最后一行,手动把文件恢复到上一个版本的状态。
  2. git checkout – file 可以丢弃工作区的修改

git checkout – file : 让这个文件回到最近一次git commit或git add时的状态
命令中的–很重要,没有–,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。

如果git add而且没git commit:
在这里插入图片描述
用git reset HEAD readme.txt 可以把暂存区的修改撤销掉(unstage),重新放回工作区:
在这里插入图片描述

git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

现在暂存区是干净的,工作区有修改。

丢弃工作区的修改:用
git checkout – readme.txt :
在这里插入图片描述
如果提交到版本库了,可以版本回退。但如果提交后还把自己的本地版本库推送到远程,就麻烦了。

小结

  • 丢弃工作区修改:git checkout -- file
  • 添加到暂存区了:git rest HEAD <file>,然后 再git checkeout -- file
  • 提交了不合适的修改到版本库,版本回退:git reset -- hard HEAD^

5.删除文件

1.确实要从版本库中删除该文件:git rm test.txt 然后 git commit -m “remove test.txt”
2.删错了,版本库还有,所以可以很轻松地将误删文件恢复到最新版本git checkout – test.txt

git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
注意:从来没有被添加到版本库就被删除的文件,是无法恢复的!

五、远程仓库

找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。
GitHub的神奇的网站,这个网站是提供Git仓库托管服务的,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库

1.添加远程库

在这里插入图片描述
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
在这里插入图片描述
在这里插入图片描述
从现在起,只要本地作了提交,就可以通过命令:

$ git push origin master

把本地master分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库!

2.从远程库克隆

首先必须知道仓库的地址,然后用命令git clone从远程库克隆一个本地库
在这里插入图片描述
进入gitskills工作区,已经有README.md文件了。
在这里插入图片描述
Git支持多种协议,包括https,但ssh协议速度最快。

六、分支管理

在这里插入图片描述

练习分支的沙盒:学习Git分支


初始分支:

在这里插入图片描述
1.查看分支

在这里插入图片描述
2.创建分支
在这里插入图片描述
在这里插入图片描述
3.切换分支

在这里插入图片描述
4.创建+切换分支:

在这里插入图片描述
5.合并某分支到当前分支

在这里插入图片描述
6.删除分支

在这里插入图片描述

七、标签管理

在这里插入图片描述
在这里插入图片描述


闲谈

很多人对勋伯格的印象就是怪诞和难听的表现主义,但在无调性/十二音作品诞生之前,他首先是个彻头彻尾的后浪漫主义者。

我看过他写的《风格与创意》一书,很赞同他表达的风格不应该束缚创意的想法。

【浪漫主义最壮丽的收尾】古雷之歌最后的"Seht die Sonne(阳光)!"大合唱+配图/西蒙拉特BPO版

源码来自:https://pan.quark.cn/s/a3a3fbe70177 AppBrowser(Application属性查看器,不需要越狱! ! ! ) 不需要越狱,调用私有方法 --- 获取完整的已安装应用列表、打开和删除应用操作、应用运行时相关信息的查看。 支持iOS10.X 注意 目前AppBrowser不支持iOS11应用查看, 由于iOS11目前还处在Beta版, 系统API还没有稳定下来。 等到Private Header更新了iOS11版本,我也会进行更新。 功能 [x] 已安装的应用列表 [x] 应用的详情界面 (打开应用,删除应用,应用的相关信息展示) [x] 应用运行时信息展示(LSApplicationProxy) [ ] 定制喜欢的字段,展示在应用详情界面 介绍 所有已安装应用列表(应用icon+应用名) 为了提供思路,这里只用伪代码,具体的私有代码调用请查看: 获取应用实例: 获取应用名和应用的icon: 应用列表界面展示: 应用列表 应用运行时详情 打开应用: 卸载应用: 获取info.plist文件: 应用运行时详情界面展示: 应用运行时详情 右上角,从左往右第一个按钮用来打开应用;第二个按钮用来卸载这个应用 INFO按钮用来解析并显示出对应的LSApplicationProxy类 树形展示LSApplicationProxy类 通过算法,将LSApplicationProxy类,转换成了字典。 转换规则是:属性名为key,属性值为value,如果value是一个可解析的类(除了NSString,NSNumber...等等)或者是个数组或字典,则继续递归解析。 并且会找到superClass的属性并解析,superClass如...
基于遗传算法辅助异构改进的动态多群粒子群优化算法(GA-HIDMSPSO)的LSTM分类预测研究(Matlab代码实现)内容概要:本文研究了一种基于遗传算法辅助异构改进的动态多群粒子群优化算法(GA-HIDMSPSO),并将其应用于LSTM神经网络的分类预测中,通过Matlab代码实现。该方法结合遗传算法的全局搜索能力与改进的多群粒子群算法的局部优化特性,提升LSTM模型在分类任务中的性能表现,尤其适用于复杂非线性系统的预测问题。文中详细阐述了算法的设计思路、优化机制及在LSTM参数优化中的具体应用,并提供了可复现的Matlab代码,属于SCI级别研究成果的复现与拓展。; 适合人群:具备一定机器学习和优化算法基础,熟悉Matlab编程,从事智能算法、时间序列预测或分类模型研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①提升LSTM在分类任务中的准确性与收敛速度;②研究混合智能优化算法(如GA与PSO结合)在神经网络超参数优化中的应用;③实现高精度分类预测模型,适用于电力系统故障诊断、电池健康状态识别等领域; 阅读建议:建议读者结合Matlab代码逐步调试运行,理解GA-HIDMSPSO算法的实现细节,重点关注种群划分、异构策略设计及与LSTM的集成方式,同时可扩展至其他深度学习模型的参数优化任务中进行对比实验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值