【Git】Git是目前世界上最先进的分布式版本控制系统(没有之一)

Git(分布式版本控制系统) 1、何为Git     Git简单的来说,是一种分布式的版本管理工具,其具有以下优点:     1、速度快     2、简单的设计     3、对非线性开发模式的强力支持(可以同时允许几千个分支同时进行开发和切换)     4、完全分布式(防止集中式版本管理工具所出现的单点故障问题)      Linus花了两个星期用C语言写出了一套Git的原型代码,在Linux数千开发者的努力与完善之下,形成了... 阅读详情

Git是什么?——Git是目前世界上最先进的分布式版本控制系统(没有之一)。

最近重新学习了Git,相比以前感觉自己对Git有了全新的认识,于是将学习Git时的笔记整理成文,分享给有需要的朋友。本文面向的读者是了解过Git的,而不是对Git一无所知(即对小白可能有阅读压力)。更适合温习提升阅读。

本文主要介绍Git的工作流程和使用方法。主要内容有:什么是版本控制,搭建Git环境,Git的一些历史背景;本地仓库,远程仓库,仓库的分支管理;

目录

什么是Git

分布式&集中式

Git与Github

Git环境搭建

配置Git

配置文件

忽略特殊文件

Git GUI工具

Git发展历史

本地仓库

创建仓库

文件提交

文件版本前进回退

操作工作区

操作暂存区

标签

远程仓库

分支管理

分支合并冲突

分支实例


什么是Git

Git是什么?——Git是目前世界上最先进的分布式版本控制系统(没有之一)。

版本控制系统:设计师在设计的时候做了很多版本

 

经过了数天去问设计师每个版本都改了些啥,设计师此时可能就说不上来了。这个时候如果能有一个软件能记录每次的文件改动,并且还能协调多用户编辑,那岂不是美滋滋?这个软件应用起来应该像这个样子:

版本

文档名

操作用户

日志

修改时间

1

shejigao.txt

zhangsan

修改标题

2019-10-01 10:10:31

2

shejigao.txt

lisi

删除备注信息

2019-10-01 10:11:49

3

shejigao.txt

lisi

增加了许可协议

2019-10-03 11:31:00

4

shejigao.txt

zhangsan

修改版权信息

2019-10-05 09:32:11

恰好,Git就能实现这样的功能!

分布式&集中式

Linus一直痛恨的CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢?

集中式版本控制系统:

版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活,推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。

集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟,这还不得把人给憋死啊。

分布式版本控制系统:

首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。

既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。

在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

 

一些后话:

CVS作为最早的开源而且免费的集中式版本控制系统,直到现在还有不少人在用。由于CVS自身设计的问题,会造成提交文件不完整,版本库莫名其妙损坏的情况。同样是开源而且免费的SVN修正了CVS的一些稳定性问题,是目前用得最多的集中式版本库控制系统。

除了免费的外,还有收费的集中式版本控制系统,比如IBM的ClearCase(以前是Rational公司的,被IBM收购了),特点是安装比Windows还大,运行比蜗牛还慢,能用ClearCase的一般是世界500强,他们有个共同的特点是财大气粗,或者人傻钱多。

微软自己也有一个集中式版本控制系统叫VSS,集成在Visual Studio中。由于其反人类的设计,连微软自己都不好意思用了。

分布式版本控制系统除了Git以及促使Git诞生的BitKeeper外,还有类似Git的Mercurial和Bazaar等。这些分布式版本控制系统各有特点,但最快、最简单也最流行的依然是Git!

Git与Github

Git是一个分布式版本控制系统,简单的说其就是一个软件,用于记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的软件。

Github(https://www.github.com)是一个为用户提供Git服务的网站,简单说就是一个可以放代码的地方(不过可以放的当然不仅是代码)。Github除了提供管理Git的web界面外,还提供了订阅、关注、讨论组、在线编辑器等丰富的功能。Github被称之为全球最大的基友网站。

Git环境搭建

Windows安装

  1. 去Git官网下载:https://git-scm.com/
  2. 安装exe可执行文件
  3. 当安装完毕后在桌面右键可以看到以下内容,表明安装成功:

 

配置Git

  1. 在开始菜单里找到“Git”->“Git Bash”、或者在某个文件夹右键打开“Git Bash Here”,打开一个命令行窗口
  2. 配置用户名和电邮。
    1. git config --global user.name "Your Name"
    2. git config --global user.email "email@example.com"

配置文件

‪当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中:C:\Users\KYLE\.gitconfig

配置Git的时候,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。

配置文件放哪了?每个仓库的Git配置文件都放在.git/config文件中

忽略特殊文件

在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。

不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore

忽略文件的原则是:

  1. 忽略操作系统自动生成的文件,比如缩略图等;
  2. 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
  3. 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

常见规则写法有如下几种:

1)/mtk/               过滤整个文件夹

2)*.zip                过滤所有.zip文件

3)/mtk/do.c           过滤某个具体文件

4) !index.php                  不过滤具体某个文件 

在文件中,以#开头的都是注释。

Git GUI工具

Github for Desktop

  1. Github出品的软件,功能完善,使用方便。
  2. 界面干净,用起来非常顺手,顶部的分支时间线非常绚丽。

 

Source tree

号称是最好用的Git GUI工具。功能丰富,基本操作和高级操作都非常流畅,适合初学者上手。

TortoiseGit

与SVN相似却是针对Git的GUI工具

它与其前辈TortoiseSVN都是非常优秀的开源版本控制客户端软件。

Git发展历史

Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。

Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?

事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!

你也许会想,为什么Linus不把Linux代码放到版本控制系统里呢?不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符。

不过,到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper(软件系统名)的东家BitMover公司(公司名)出于人道主义精神,授权Linux社区免费使用这个版本控制系统。

安定团结的大好局面在2005年就被打破了,原因是Linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气。开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不只他一个),被BitMover公司发现了(监控工作做得不错!),于是BitMover公司怒了,要收回Linux社区的免费使用权。

Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情况是这样的:

Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!牛是怎么定义的呢?大家可以体会一下。

Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。

历史就是这么偶然,如果不是当年BitMover公司威胁Linux社区,可能现在我们就没有免费而超级好用的Git了。

上面是对Git的初步认识,接下来开始正式使用Git来管理代码了!Enjoy.^.^.

本地仓库

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

 本地仓库的三个操作区域和工作流程:

创建仓库

创建一个仓库

  1. 选择一个合适的地方,创建一个空目录。如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。
  2. 在这个空目录处右键,点击“Git Bush Here”或者“Git GUI Here”。
  3. 通过git init命令把这个目录变成Git可以管理的仓库。

文件提交

交给仓库管理:

  1. 在该文件夹创建你想要让Git管理的文件。强烈建议使用标准的UTF-8编码,所有语言使用同一种编码,既没有冲突,又被所有平台所支持。
  2. 用命令git add告诉Git,把文件添加到仓库:git add 文件名
  3. 用命令git commit告诉Git,把文件提交到仓库:git commit -m "提交时的说明"。另外运行git status看看当前仓库的状态

 

此时,我们可以解释提交文件到仓库在Git中的执行过程了:

 

  1. 正在编辑的文件存放在工作区,使用git add命令提交到暂存区
  2. 暂存区的文件使用git commit命令提交的仓库存储做真正的存储

 

文件版本前进回退

版本回退前进:

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

版本回退实例:

1、进行三次提交

2、查看提交历史

3、回退到第一次提交时的内容:

4、前进到以前的最终版本:

操作工作区

丢弃工作区的修改,用命令git checkout -- 文件名

操作暂存区

 

丢弃暂存区中的修改:

 

  1. 用命令git reset HEAD 文件名,就回到了工作区
  2. 再用工作区的丢弃操作即可

 

改名文件,并且将这个改名放入暂存区:git mv [file-original] [file-renamed]

 

标签

发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。

Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支(branch)可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成的。

Git有commit,为什么还要引入tag?

  1. “请把上周一的那个版本打包发布,commit号是6a5819e...”
  2. “一串乱七八糟的数字不好找!”
  3. 如果换一个办法:
  4. “请把上周一的那个版本打包发布,版本号是v1.2”
  5. “好的,按照tag v1.2查找commit就行!”
  6. 所以,tag就是一个让人容易记住的有意义的名字,它跟某个commit绑在一起。

 

  • 命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;
  • 命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;
  • 命令git tag可以查看所有标签。

标签:就是给某个commit设置容易记住且有意义的名字;

对分支创建标签

  1. 切换到需要打标签的分支上:git branch <name>
  2. 打标签:git tag <name>
  3. 查看所有标签:git tag

对以前的commit打标签:

  1. 先得到历史提交的commitID(git log --pretty=oneline --abbrev-commit)
  2. 再打标签:git tag <name> commitID
  3. 查看某个标签:git tag <tag_name>

操作标签

  1. 删除本地(即未提交到远程/GitHub)的标签:git tag -d <标签名>
  2. 删除已经提交了远程的标签:
  3. 先从本地删除:git tag -d <标签号>
  4. 然后,从远程删除。删除命令也是push,但是格式如下: git push origin :refs/tags/标签号

远程仓库

  • 内网仓库
  • GitHub
  • Gitee

使用步骤:

  1. 在合适的文件夹内,右键,打开Git命令行窗口,使用clone指令克隆线上仓库到本地:git clone 线上仓库地址
  1. 自己写完代码后的提交操作:git push
  2. 拉取别人写的代码更新操作:git pull
  3. 在每天工作的第一件事就是先git pull拉取线上最新的版本;每天下班前要做的是git push,将本地代码提交到线上仓库。

本地仓库上传至远程仓库(基于SSH协议):

 

  1. 建立连接SSH key:ssh-keygen -t rsa -C "kyleshawe@outlook.com"
  2. 关联远程仓库:git remote add origin git@github.com:michaelliao/learngit.git  注意:git@后面的完全取决于你的github的网址,然后追加".git";
  3. 将本地仓库推送至github:git push -u origin master (首次使用);git push origin master

 

分支管理

什么是分支:

在开发的时候往往是团队协作,多人进行开发,因此光有一个分支是无法满足多人同时开发的需求的,并且在分支上工作并不影响其他分支的正常使用,会更加安全,Git鼓励开发者使用分支去完成一些开发任务。

分支相关指令(增删改查):

  1. 创建分支:git branch 分支名
  2. 删除分支:git branch -d 分支名
  3. 合并某分支到当前分支:git merge 被合并的分支名
  4. 查看分支:git branch
  5. 创建+切换分支:git checkout -b 分支名
  6. 切换分支:git checkout 分支名

分支合并冲突

 

冲突的产生原因:

 

  1. 现在本地仓库文件a.txt的版本为V100。我提交到远程仓库后,该文件在远程仓库的版本为V100。
  2. 某位同事拉取了版本为V100的a.txt文件,做了修改,并提交到远程仓库,此时版本为V101。
  3. 此时,我也对a.txt文件进行了修改,提交时则会有冲突。此时我这里的版本是V101,远程仓库的版本理应是V100,由此提交失败,有冲突产生。

 

解决冲突:

 

  1. 先把自己的修改内容做个备份。
  2. 执行git pull,拉取远程仓库上的最新代码。
  3. 再根据最新的代码进行修改,也即基于现在最新的代码上重新写。
  4. 教训:上班第一件事先git pull,可以在一定程度上避免冲突的产生。

 

分支实例

分支合并

  1. 在已有master分支的基础上,创建一个dev分支:git checkout -b dev
  2. 查看当前分支:git branch  (当前分支前面会标一个*号。)在当前分支上做了修改,添加(git add <file>)并提交(git commit -m <message>);
  3. 切换回master分支:git checkout master
  4. 把dev分支的工作成果合并到master分支上:git merge dev
  5. 合并完成后,就可以放心地删除dev分支了:git branch -d dev

BUG临时分支:

  • 背景:在一个abab分支上进行自己的工作时,突然要去处理BUG;则需要保存现在的abab分支,然后去处理BUG;
  1. 把当前工作区储藏:git stash
  2. 转至BUG所在的分支:git checkout <BrunchName>
  3. 修改完毕后,添加(git add <file>)提交(git commit -m <message>)
  4. 回到master分支,合并分支:git merge --no-ff -m <message> <BrunchName>
  5. 回到自己的abab分支:git checkout dev
  6. 显示工作现场:git stash list
  7. 恢复工作现场:一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;另一种方式是用git stash pop,恢复的同时把stash内容也删了

Feature分支:

  • 背景:临时添加需求,然后又取消了需求;
  1. 新需求名为featureA(在分支dev下):git checkout -b featureA
  2. 开发完毕:git add <file>; git commit -m "featureA finished."
  3. 切回dev,准备(还未合并)合并:git checkout dev
  4. 就在此时,接到上级命令,因经费不足,新功能必须取消!虽然白干了,但是这个包含机密资料的分支还是必须就地销毁:git branch -D featureA;(由于没有被merge,所以-D删除后就找不回了)

 

【Git】分布式版本控制系统 git是目前世界上最先进的分布式版本控制系统(没有之一)。git 的重要性在这里就不多说了,只要是公司的多人开发项目基本用的都是 git,进项目组的时候 leader 让你拉下代码,提交下代码,要是说不会的话真的就尬住了。目前我学习的重点在“更好的使用 git”而不是“研究 git”。 阅读详情

相关推荐

GIT(分布式版本控制系统)入门

什么是GIT  Git是目前世界上最先进的分布式版本控制系统(没有之一)。      那么问题来了,什么是分布式版本控制系统。      这里举个例子,你需要编写一个文档,这个文档呢财务部需要,产品部也需要。那么你要怎么写呢。无非这样做,先写一部分部门的材料,保存下来一个版本,交给他们,再添加一部分材料保存另一个版本交给另外的部门。如果涉及到多个部门,可能你需要写多个版本,都保存下来。然而,

捉鱼的熊的博客 3696

较为流行的三个国内hack网站

黑白网络 http://www.urgentnews24.cn/ hack58 http://www.myhack58.com/ 黑基 http://www.myhack58.com/

july0404的专栏 11万+

IndustryHack:此仓库供MS Industry Hack结果提交

工业界 此仓库供MS Industry Hack参考和结果提交。 在为Hack上传结果之前,请进入正确的目录并遵循该目录中的README.md 。 Azure AI平台参考 以下是数据科学的完整生命周期,您可以在Azure上找到许多服务来帮助您完成整个生命周期。 Azure自定义视觉服务 Azure机器学习Studio Azure机器学习服务 Azure深度学习VM(DLVM)和GPU 用于文本分析的Azure机器学习包 适用于计算机视觉Azure机器学习包 用于预测Azure机器学习包 Azure计算和数据平台参考 您还可以利用Azure计算和数据服务来部署解决方案。 Azure应用服务 Azure SQL数据库 Azure MySQL数据库 Azure存储 Azure Cosmos DB Azure HDInsight参考 Azure容器服务参考 Azure IoT服务 您还可以

hack网址

http://www.phrack.org/ 国外逆向网址http://www.openrce.org/about/

lifeqiuzhi521的博客 21万+

hack_warspear:这个仓库是为黑客战争武器而创建的

hack_warspear 0x01:必要工具 1.immunity debugger 之所以选择 immunity 而不用od是因为这个调试器支持python,实现用python来简化一些重复性工作,比如在断点时候打印一些寄存器信息,内存信息等等,虽然od应该也可以做,不过对我这种不太习惯的人来说学习成本有点高。 2.cheat engine 郁金香老师的外挂视频教程中也经常使用的一个查基址,甚至调试的软件。而且我发现ce也支持脚本语言,你是可以通过编写lua脚本来实现很多功能,比如查看堆栈等等 0x02:目录结构 GameData InjectDll UpdateBase hackWarspear immunity:该目录存放为immunity debugger写的一些python脚本 info:该目录存放一些lua脚本及其他一些调试中间的信息记录 上面前面4个目录是当时写的外挂软件目

Hacktoberfest2019:该仓库已被hacktoberfest删除,仍然欢迎贡献者,但您的PR将不会计入hacktoberfest

欢迎来到HacktoberFest 2019! 笔记: :cross_mark: 此回购已从Hacktoberfest中排除。 :cross_mark: 如果您正在寻找为HacktoberFest创建PR的机会,那么您可能会找到一些值得抢先的好问题。 :check_mark: :check_mark_button: 请按照以下步骤提出您的第一个请求请求- 分叉此存储库。 将分叉的存储库克隆到本地计算机。 在Contributors.md文件中添加您的名字。 将这些命令写在您的终端上- git add -A git commit -m " your name " git push origin master 然后创建您的请求请求。 给我的星标。 恭喜!! 您已经成功创建了拉取请求。 在此处检查进度( ) 等你的衬衫。

开源公司黄页之Facebook开源软件推荐(一)

从Facebook的GitHub账户中可以看到,Facebook已经开源的开源项目有近300个,领域涉及移动、前端、Web、后端、大数据、数据库、工具和硬件等。 React Native——移动开发框架 React Native是Facebook在2015年开源的基于React.js的移动开发框架,它的设计理念是让移动应用既拥有Native的用户体验,同时又可以保留React的

ejinxian的专栏 9784

QHack:QHack的官方仓库—量子机器学习黑客马拉松

注意:在我们考虑QHack Open Hackathon提交时,此存储库已被冻结。 希望您喜欢这次活动! 欢迎来到量子机器学习黑客 ! 我们很高兴能有机会与如此众多的参与者见面并一起工作,我们很高兴在活动期间与大家互动。 今年的活动包括三个主要部分: :我们将在进行直播。 与我们一起进行为期三天的演讲,演讲嘉宾来自一组令人惊异的演讲者。 :通过解决所有技能水平的一系列QML挑战问题来建立自己的技能。 :向世界展示和可以做什么! 梦想您自己的黑客马拉松项目,或者从我们的种子创意之一开始。 最新的活动时间表可在找到。 动力和奖品 QHack由我们的赞助商提供了一些惊人的好东西和奖品。 适用于AWS的积分 赚取$ 250的AWS赠金:2月19日直播结束时,记分板上的前80名团队将获得$ 250的赠金,以帮助他们在AWS上构建他们的Open Hackathon解决方案。 团队可以将积

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

http://zhidao.baidu.com/link?url=NSYPiSvtGTMoqMA9vt68FRRF8WbfYVmwWeMh47_2lkp0K3jFMl--1Co1tg1R4VshTQV2De1JeG-fh3Ezu5j-3q Git是什么?Git是目前世界上最先进的分布式版本控制系统(没有之一)。Git有什么特点?简单来说就是:高端大气上档次!那什么是版本控制系统?如果你用Micr...

weixin_30832983的博客 301

hacktoberfest-2020:一个开放的公共仓库为2020年hacktoberfest做出贡献

hacktoberfest-2020 将于2020年慕尼黑啤酒节开放的公众仓库 如果您是第一次参加hacktoberfest,则此仓库适合您 该怎么办? 分叉此回购 编辑main.js 将您的照片添加到/ images文件夹 在contributors.txt中添加您的名字 提交并推送 发送请求请求 拉入请求被接受后,你的名字将显示在这里 贡献步骤 您可以在main.js的开头找到以下行 let contributers = [ ] 这些括号内将有信息 let contributers = [ { details of contributer 1 } , { details of contributer 2 } ] 在上一个贡献者之后,通过以下逗号填写以下格式的信息 { "name" : "YOUR NAME" , "college

【论文速读】MLDT:基于开源大语言模型的复杂长时机器人任务规划多层次分解方法

—在数据驱动的人工智能技术领域,开源大语言模型(LLMs)在机器人任务规划中的应用是一个重要的里程碑。近期基于开源大语言模型的机器人任务规划方法通常利用大量的任务规划数据集来提升模型的规划能力。虽然这些方法展现出了一定的前景,但它们在处理复杂长时任务时存在困难,因为这类任务需要理解更多的上下文信息并生成更长的动作序列。本文提出多层次分解任务规划方法(MLDT)来解决这一局限性。该方法创新性地在目标级、任务级和动作级对任务进行分解,以应对复杂长时任务带来的挑战。

muyulingfengye的博客 1644

Git简单介绍

Git和SVN是常用的两个版本控制系统,而Git是目前世界上最先进的分布式版本控制系统。回想我以前在没有版本控制系统时,对文件的管理经历,可以说是非常痛苦的。我在增删改的时候,又担心这个代码,或者代码中的一段文字修改后,再也恢复不了,于是就只能新建,再另存为,加上修改的日期......短期内,这样做似乎是没有问题的,然而,实际情况比较复杂,当过了一周后,你想找回被删除的文字,但已经记不清删除前保存

猿泽 353

Sublime Text4代码配色自定义方案

关于Sublime Text对于我的使用体验,只能说内置的代码主题真的都太low了,一点都不好看。所以接下来我分享一下我自定义代码配色。当然,大家也可以通过我给的中文翻译注释来自定义自己喜欢的颜色。废话不多说,直接上代码直接将代码复制粘贴到:Preferences > Customize Color Scheme 即可。},"globals":"foreground": "var(white)", // 前景色。

追求细节,成就完美 6026

Git-世界上最先进的分布式版本控制系统

git简介以及优缺点 git简介: git可以说是世界上最先进的版本控制系统,大多语句的执行为linux语句,也不难怪,,起初他就是为了帮助开发linux开发内核而使用。 我们先来说git的主要功能,知道了这个,我们也就知道了为什么我们进行项目开发多会选择这个进行项目的开发 从一般开发者的角度来看,git有以下功能: 从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。 在自己的机器上根据不同的开发目的,创建分支,修改代码。 在单机上自己创建的分支上提交代码。 在单机上合并分支。 把服务器上最.

〆、挽风的博客 484

别再乱改grub.cfg了!手把手教你用GRUB2自定义多系统启动菜单(含UEFI/BIOS双模式配置)

本文详细介绍了如何安全、高效地使用GRUB2自定义多系统启动菜单,涵盖UEFI/BIOS双模式配置。通过避免直接编辑grub.cfg文件,采用正确的配置方法和命令,帮助用户打造稳定且美观的启动环境,特别适合Linux多系统用户和开发者。

weixin_42553471的博客 590

ArcGIS-裁剪遥感影像及dem图像

6、选择【工具箱】-【数据管理工具】-【栅格】-【裁剪】。在【输入栅格】里选择要裁剪的dem,在【输出范围】里选择刚创建的裁剪范围。选择一个输出路径,其他参数保存默认。2、起一个名称,要素类型选择【面】。点击【编辑】选择与要裁剪的dem一致的地理坐标系。1、创建需要裁剪区域的面层shp,右击选择【新建】-【shapefile】3、点击编辑器,选择开始编辑。4、选择【裁剪范围】,点击确定。5、画出想要裁剪的范围并保存。

siwenaiyou的博客 1万+

Git简介

Git简介 Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一)。 Git有什么特点?简单来说就是:高端大气上档次! 那什么是版本控制系统? 如果你用Microsoft Word写过长篇大论,那你一定有这样的经历: 想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一个新的Word文件,再接着改,改到一定程度,再“另存为……”一个新文件,这样一直改...

寂寞风中一匹狼的博客 128

ESP32 Arduino学习篇 (一) 引脚和串口的基本使用

简单来讲arduino就是通过源代码控制开发板的信号输入输出从而实现对一些电子元件的控制,例如LED灯,蜂鸣器,按键arduino程序首先来讲arduino程序是基于C语言,而实现类似对于LED灯和蜂鸣器的简单控制只需简单C语言知识即可实现。arduino程序是基于函数的,而在arduino的库有很多函数,我们只需要调用即可。arduino的程序主体是**setup()函数和loop()**函数以及其它在使用过程中需要构建的函数:setup()函数。

DOF526570的博客 1万+

【快速了解】Git最先进的分布式版本控制系统

git是目前最先进的分布式版本控制系统,可以高效的处理从小型到大型项目的所有事务,用于追踪和管理文件的变化。

2303_76567022的博客 1707

从零搭建UVM验证环境:新手入门实践指南

在数字芯片验证领域,SystemVerilog和UVM(Universal Verification Methodology)是构建高效验证环境的核心技术。其原理基于面向对象编程和事务级建模,通过组件化架构实现验证的复用性和自动化。这一方法学的技术价值在于显著提升验证效率与质量,广泛应用于处理器、通信芯片等复杂设计的验证场景。本文聚焦于UVM验证环境的搭建实践,通过一个加法器实例,详细解析了uvm_driver、uvm_monitor、uvm_sequence等关键组件的协同工作机制,并提供了基于Quest

weixin_30015371的博客 445

AEJoy —— 最受欢迎的 5 个 Ae 表达方式

NOTE] 原文作者我意识到表达式可能令人生畏,有些人宁愿复制粘贴有用的代码,而不愿学习这门语言。对此我完全理解。因此,我想与您分享我的。这些是我几乎在每个项目中都会使用的表达式,我认为它们极大地提升了工作流程。

ShaderJoy 的兴趣技术杂货铺 363

git:世界上最先进的分布式版本控制系统(一)什么是git

廖雪峰老师的git网站读书笔记。想要获得更好的观看体验可阅读原文。

m0_74117421的博客 778

【深度学习时间序列预测案例】零基础入门经典深度学习时间序列预测项目实战(附代码+数据集+原理介绍)

本专栏整理了《深度学习时间序列预测案例》,内包含了各种不同的基于深度学习模型的时间序列预测方法,例如LSTM、GRU、CNN(一维卷积、二维卷积)、LSTM-CNN、BiLSTM、Self-Attention、LSTM-Attention、Transformer等经典模型,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。

优快云 精品推荐 4万+

git分布式版本控制系统(六)

git提交规范 分支管理 流程管理

哎呦,不错哦 3156

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Git -目前世界上最先进的分布式版本控制系统

史上最全git版本库的使用,让你对git的使用绝不仅仅停留在pull,push!

老师好,我是安同学 883

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Git从入门到项目实战,一篇文章吃透Git

Git:版本控制、常见版本控制工具,版本控制分类三种,Git下载和安装,Git基本知识,常用命令,分支,三个区域,码云gitee,配置SSH公钥,操作远端仓库,IDEA集成Git,添加到暂存区方法

小鳴人的博客 3236
上一篇: 【Java】基于time包的日期时间
下一篇: 【线性表】处理线性表元素的算法思想
ALGO阿狗
博客等级 码龄9年 64粉丝 149原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值