git学习教程记录

本文介绍了Git的基本概念,包括集中式与分布式版本控制系统的特点,Git常用命令及其应用场景,如初始化仓库、配置用户信息、添加及提交文件等。同时,文章详细解释了如何管理版本历史、撤销修改、处理文件删除及远程仓库的同步。

Git教程学习记录如下:

集中式VS分布式:

集中式版本控制系统必须联网才可以工作的,版本库集中放在中央服务器上,工作的时候要从服务器上取得最新的版本,干完活后再推送到中央服务器上。

 

分布式版本控制系统在每个人的电脑上都有一个完整的版本库,因此工作的时候就不需要联网,并且安全性也很高,

 

SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于CVS,它采用了分支管理系统,他的设计目标就是取代CVS。

 

初始化一个仓库的命令如下:

$ git init

 

配置一个Git仓库的命令如下:

$ git config  --global user.name “Your Name”

$ git config  --global user.email email@example.com

 

仓库:repository

 

添加文件的命令:

$ git add filename

 

提交文件的命令如下:

$ git commit –m “information”

 

时刻掌握仓库的当前状态的命令如下:

$ git status

 

查看文件的不同的命令如下:

$ git diff

 

git status可以查看文件被修改过,git diff可以查看文件修改的内容。

 

查看历史提交的记录的命令如下:

$ git log

该命令显示从最近到最远的提交日志

如果显看的眼花缭乱我们可以添加如下的命令

$ git log –pretty=oneline

 

回退到上一个版本的命令如下:

$ git reset –hard HEAD^

 

回退后如何再返回原来的版本的命令如下:

$ git reset –hard 3156aa781e

 

用来记录操作的每一条命令的命令如下:

$ git reflog

 

小结:

(1)HEAD指向的版本就是当前的版本,因此Git允许我们在版本的历史之间穿梭,使用命令$ git reset –hard commit_id

(2)穿梭前可以使用$git log 查看提交历史,以确定要回退到那个版本

(3)要重返未来,使用$git reflog查看命令的历史记录,以确定要回退到历史的那个记录。

 

工作区和暂存区:

我们使用命令$git add 把文件添加进去,实际上就是吧文件修改添加到暂存区stage

我们使用命令$git commit提交更改,实际上就是把暂存区stage的所有内容提交到当前分支master

 

工作区中的文件.git里面含有许多的内容,其中最重要的就是stage的暂存区,还有Git为我们自动创建的分支master,以及指向master的一个分支HEAD。

 

Git管理的是修改而不是文件

 

查看工作区和版本库里面的最新版本的区别的命令如下:

$ git diff HEAD  --  readme.txt

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

 

git diff:是查看working treeindex file的差别的。

git diff--cached:是查看indexfilecommit的差别的。

git diffHEAD:是查看working treecommit的差别的。(你一定没有忘记,HEAD代表的是最近的一次commit的信息)

 

撤销修改命令如下:

$gitcheckout – readme.txt

该命令的作用就是把文件readme.txt在工作区中的修改全部撤销,分两种情况:

1)一种就是readme.txt自修改后还没有放到暂存区,现在撤销后就回到和版本库一模一样的状态

2)一种就是readme.txt已经添加到暂存区stage后,又做了修改,现在撤销后就回到添加暂存区后的状态。

总之就是让这个文件回到最近一次git commit git add时的状态。

 

使用如下命令可以把暂存区的修改撤销掉

$git reset HEAD file

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

 

小结:

(1)当你改乱了工作区的某个文件的内容时,想直接丢掉工作区的修改的时候,用命令git checkout – file。

(2)当你不但该乱了工作区的某个文件的内容,还添加到了工作区中,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二部按照场景1的操作。

(3)已经提交了不适合的修改到版本库的时候,想要撤销本次提交,前提没有推送到远程库,使用命令如下:git reset –hard HEAD

 

删除文件

如果是误删除的文件,由于版本库里面还有文件,所以可以很轻松的把误删除的文件恢复到最新版本。

$ git checkout – filename

小结:

工作目录,stage,master是三种状态,工作目录到stage,使用git add/rm, stage到master,使用git commit,回退的话借助提示信息就ok。

 

因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。

 

添加远程库:

在第一次向远程仓库提交代码的时候的命令如下:

$ git push –u origin master

Git不但会把本地的master分支内容推送到远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取的时候就可简化命令。

 

把本地master分支的最新修改推送至GitHub的命令如下:

$ git push origin master

 

小结:

关联一个远程仓库,使用如下的命令:

$ git remote add origin git @server-name:path/repo-name.git

关联后,使用命令git push –u origin master第一次推送master分支的所有内容

此后再次提交使用命令:

$ git push origin master 推送最新修改

分布式版本系统的最大好处就是在本地工作完全不需要考虑远程仓库的存在,也就是没有联网都可以正常工作,而SVN在没有联网的时候是拒绝干活的!当有网络的时候,再把本地提交推送一下就完成了同步。

 

从远程库克隆:

https://github.com/wanglaiqi/gitskills.git

git@github.com:wanglaiqi/gitskills.git

要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆

Git支持多种协议,包括https,但通过ssh支持原生git协议速度最快

 

小结

查看分支的命令:git branch

创建分支的命令:git branch <name>

切换分支的命令:git checkout <name>

创建+切换分支的命令:git checkout –b <name>

合并某分支到当前分支的命令:git merge <name>

删除分支的命令:git branch –d <name>

查看分支合并图的命令:git log --graph

 

小结:

查看远程库信息,使用git remote –v

从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交。

在本地创建和远程分支对应的分支,使用git checkout –b branch-name origin/branch-name,本地和远程分支的名称最好一致。

建立本地和远程分支的关联,使用git branch –set-upstream branch-name origin/branch-name

从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

 

 

内容概要:本文聚焦于分布式传感器网络中的LEACH(Low-Energy Adaptive Clustering Hierarchy)聚类算法,系统研究其在能量消耗建模与网络生命周期优化方面的性能表现,并结合Matlab代码实现完整的仿真分析流程。研究深入剖析LEACH协议的核心机制,即通过周期性选举簇头节点实现能量负载的均衡分布,从而有效延长网络整体生存时间。内容涵盖传感器节点部署优化、通信能耗模型构建、路由策略设计及能量耗尽过程的动态模拟,重点解决传统LEACH算法中存在的簇头分布不均、能耗集中于特定区域等缺陷。文档不仅提供了LEACH及其改进算法的仿真案例,还拓展至智能优化算法、机器学习、信号处理等多学科交叉应用方向,体现了该研究在物联网、边缘计算和无线传感网络领域的广泛适用性与科研价值。; 适合人群:具备一定编程基础和科研能力,熟悉Matlab仿真环境,从事无线传感器网络、物联网、智能优化算法等相关领域的研究生或科研人员。; 使用场景及目标:①用于无线传感器网络中能量高效路由协议的设计与优化;②通过Matlab仿真实现LEACH算法及其改进版本的性能对比分析;③支撑科研论文复现、算法验证与教学演示;④为分布式系统中的能耗均衡问题提供解决方案参考。; 阅读建议:建议读者按照文档提供的目录结构系统学习,重点关注LEACH算法的核心机制与能量模型构建,结合所提供的Matlab代码进行仿真实践,并参考网盘资源中的完整案例以加深理解。同时可拓展至其他优化算法与通信协议的研究,提升综合科研能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奇文王语

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值