Git&Github学习笔记 一时失言乱红尘 2022-07-21 01:54 157阅读 0赞 > 感想:以前学习了好几次Git,看了几个人的技术文档,可是总不会用,当然也有可能是因为我太笨,很多人把Git教程写的很高深,一堆代码看的我头晕,遇到简单的查查还能行,可是随着越来越深,积累的问题越来越多,最后学习总是中断,不得不从头来,来回折腾,真是恼火,恼怒自己的智商不够! > > 后来一个朋友向我推荐了廖老师的Git学习方法,我一学习,就停不下来了,在研期间任务多,利用空闲时间花了一个礼拜总算学完,认识也比较深刻,学习了廖老师的Git教程,总体感觉廖老师很走心,也很感谢朋友老葛送给我的硬货。 # 1 Git配置+初始化repository # 下载Git,安装; ## Git配置 ## ![SouthEast][] ## 初始化仓库 ## cd learngit (进入目录) git init (初始化一个仓库;) # 2 Git操作 # ## Git添加文件 ## 使用纯文本编辑,标准编码UTP-8; 将文件放到learngit文件夹下面或者子文件夹下面; 执行如下命令: ![SouthEast 1][] git add 文件名 git commit –m “文件更改说明” git status (查看仓库的当前状态) ![SouthEast 2][] 当前提示的修改状态表示文件被修改过了,但是文件修改状态还未被提交!需要再次执行git add 文件名 ## 查看版本回退状态 ## 查询历史快照,截取历史状态;要查询git日志 命令:git log 此命令显示最近到最远的提交日志状态 ![SouthEast 3][] 如果想要控制日志更好的显示 命令:git log –pretty=oneline ![SouthEast 4][] 回退显示以前的历史数据 命令:git reset –hard HEAD^ 显示当前版本内容 命令:cat first.txt ![SouthEast 5][] 利用版本号返回到后面的某个版本 命令:git reset –hard23cc951 版本号可以不用写全,只需要前几位就可以了,系统会自动查找! ![SouthEast 6][] 显示所有回退状态: git reflog ![SouthEast 7][] 工作区(WorkingDirectory)---就像learngit 文件夹就是一个工作区; 版本库(Repository)---比如说learngit下面的一个隐藏目录.git,里面存储了很多东西,如stage(暂存区),第一个分支(master),以及master的一个指针HEAD; ![SouthEast 8][] Git比其他版本控制系统设计的更加优秀,因为Git跟踪涉并管理的是修改,而非文件。 Git**保存修改**只是将暂存区里的记录,也就是指保存add命令后的版本,不能保存add前的内容;每次修改不把修改后的内容add到暂存区,即使执行了git commit命令,也不能保存这次修改,只能保存以前的修改;commit命令只能保存暂存区stage里面的版本; ## 撤销修改 ## 1.在工作区做了部分修改,发现修改的地方是有病的,这时候需要撤销修改 命令:git checkout second.txt 撤销的是add命令之前的修改;也就是添加到stage暂存区之前在工作区内的修改; ![SouthEast 9][] 2.在工作区做了修改,然后提交到暂存区了,想要撤销修改 命令:git resetHEAD second.txt 命令:gitcheckout second.txt 第一个命令是将文件从暂存区会退到工作区,第二个命令是将工作区的修改内容撤销掉; ![SouthEast 10][] 3.如果修改部分从工作区添加到暂存区,又从暂存区保存到版本区(Repository),但是并未推送到远程;此时可通过回退版本来撤销修改! 命令:git reset –hardHEAD^ 此命令是将HEAD指针指向前一个版本; ## 撤销删除 ## 命令:rmsecond.txt 可以删除工作区的文件,但是版本区的仍然存在; 也可以直接在工作区点击删除文件; 两个选择: 1. 删除版本区的版本; 命令:git rmsecond.txt ![SouthEast 11][] 2.通过版本区回复工作区误删的文件; 命令:gitcheckout second.txt ![SouthEast 12][] # 3 远程库Github # ## 添加远程库 ## 添加远程仓库推送本地进度,既可以使用ssh协议,也可以使用https协议,前者推送较快,后者推送相对较慢,一般使用ssh协议。 登录github账户:TerenceJing 进入桌面端master分支:cd learngit ### 使用https协议 ### 本地仓库远程添加命令:gitremote add origin https://github name 可将本地仓库master分支下的仓库推送出去 ![SouthEast 13][] orign:远程库 推送本地仓库:gitpush –u origin master 随后输入远程**github账户名**:Username for ‘https://github.com’:**TerenceJing** 输入远程**github账户命令**:Password for’https://TerenceJing@github.com’:**\*\*\*\*\*\*** ![SouthEast 14][] 推送成功; 从现在起,只要本地做了提交,就可以通过命令:git push origin master 把本地master分支的最新修改推送至github。 此刻,我拥有了真正的分布式版本库,有点按耐不住的激动! 第一次使用clone或者push命令的时候,会认证指纹,并且添加到远程信任列表当中 ![SouthEast 15][] 退出masterBranches ![SouthEast 16][] ### 使用ssh协议 ### 在本地创建ssh key,然后在远程Github上面创建ssh key,生成识别指纹,这样在推动提交进度的时候,Github就可以识别出来这是你自己推送的内容,而非别人推送的。 使用命令:ssh –keygen–t rsa –C “Terence\_Jing@163.com“ ![SouthEast 17][] 创建了ssh key,生成了fingerprint指纹. 此时,在硬盘上生成了如下文件包: ![SouthEast 18][] 然后点击.ssh文件,进入看到两个文件:id\_rsa和id\_rsa.pub, ![SouthEast 19][] 从后缀名就可以看出前者是私密的,后者是共有的。 本地创建仓库 try ,并进入仓库初始化仓库: ![SouthEast 20][] ![SouthEast 21][] 在本地创建文件,并提交进度: ![SouthEast 22][] 连接远程TerenceJing/try.git仓库 ![SouthEast 23][] ![SouthEast 24][] 上图首次推送命令执行效果表示建立连接成功,并添加到了信任列表当中。 随后再次推送本地进度:直接使用 git push origin master(注意本地当前仓库,只将本地当前仓库推送到相应的远程仓库) ![SouthEast 25][] ## 分支管理 ## 有时候自己的任务没有完成,但是需要提交任务进度,不提交就会有丢失进度的风险,提交任务了但是自己的任务没有完成,别人看到不完整的任务会给别人带来不便。 此时,可以通过建立一个其他的分支类型来隐藏自己提交的不完整内容,别人只能看到master主分支上的任务,看不到新的分支下面的内容,等到任务完成后,可以通过将新分支合并到master主分支上,然后删除新分支即可。 Git鼓励大量使用分支: 查看分支:git branch 创建分支:git branch <name> 切换分支:git checkout <name> 创建+切换分支:git checkout -b <name> 合并某分支到当前分支:git merge <name> 删除分支:git branch -d <name> ![SouthEast 26][] ## 手动解决分支冲突 ## 返回上级目录:cd .. ![SouthEast 27][] 创建新的分支feature1,在master分支和feature各做修改,提交进度; 变成如下进度所示: ![SouthEast 28][] ![SouthEast 29][] 查看状态,告知我们有文件未合并 ![SouthEast 30][] 查看文件内容,会看到有两个分支都做了修改。 ![Center][] 此时解决冲突的办法就是手动修改文本内容,替换为: Creating a new branch is quick and simple. 然后重新提交,并删除featrure1分支; ![SouthEast 31][] 查看分支合并图:gitlog --graph ![SouthEast 32][] 合并现状: ![SouthEast 33][] ![SouthEast 34][] ## 分支管理策略 ## 多分支管理,禁用Fast forward合并模式,不要将master主分支移动,或许存在多个分支,此时可以多分支在某一个时间点合并,然后将合并后的分支合并到主分支上,起到了多人并发工作的作用。 ![SouthEast 35][] 命令:git merge –no-ff–m “merge no ff” dev 禁用Fast forward模式,用普通模式合并,在主分支上重新添加一个修改进度名,并将dev分支合并到主分支master上。 ![SouthEast 36][] ![SouthEast 37][] ![SouthEast 38][] 禁用Fast forward模式;可以建立多个分支dev、feature1、featrue2……,多个员工使用多个分支,将自己的分支合并到dev分支上,完成一定任务时在合并到master主分支上,发布出去。 ![SouthEast 39][] ## 分支Bug ## 情景:主分支master,在利用次分支dev完成任务,需要两个小时才能完成这个模块,然后才能提交,但是主分支上有一个Bug需要修复(一般改动都是在建立的次分支上完成,然后合并到主分支),并且比较紧急,要立刻完成。此时dev分支上的任务并没有完成,如果想要返回到主分支master修复Bug,就需要保存dev的工作现场,等到修复完Bug后返回dev分支上,回复工作现场,接着工作完成任务。 在dev分支上保存工作现场命令:git stash 在dev上查看工作现场命令:git stash list 在dev上回复工作现场 命令1:git stash apply 回复后,stash内的内容并不删除用命令: git stash drop删除保存记录; 命令2:git stashpop 恢复工作现场的同时,删除了保存记录; 如果有多个工作现场,可以恢复指定工作现场 使用命令:git stash apply stash@\{ 0\} 然后,可以在dev分支上接着工作; ![SouthEast 40][] 强行删除未合并分支 情景:在工作中,可能需要增加新的功能,但是又不希望增加新功能的实验性质代码打乱原有的代码,这时,就需要建立新的分支Feature1,但是准备合并的分支的时候这个功能突然不需要了,此时需要删除这个废弃的功能分支Feature1. 此时执行删除命令:git branch –d feature1;出现错误:提示有分支为合并,如果要删除分支,需要执行强制删除命令:git branch –D feature1; ## 多人协作模式branches ## 有时候不需要全部推送,只需要推送自己负责的分支上的修改任务,可以采用推送指定分支的方法完成; 查看远程分支:git remote 查看远程分支详细信息,可以看到能够被抓去的分支和推送的分支:git remote –v 推送分支命令:git push origin master/dev 针对上述命令,远程仓库默认名称是origin,所以使用 git pushorigin master推送主分支。 ![SouthEast 41][] 有时候因为自己的工作分支对应的远程分支有所更新,当自己想要推送的时候推送不成功,此时,需要将远程分支重新抓取下来,和本地分支合并,解决矛盾冲突,然后将本地分支推送到远程对应的分支; 多人协作模式: 1. 首先,可以试图用`git push origin branch-name`推送自己的修改; ![SouthEast 42][] 2.如果推送失败,则因为远程分支比你的本地更新,需要先用`git pull`试图合并; ![SouthEast 43][] 上述提示推送失败,是应为本地dev分支没有指定到远程origin仓库下的dev分支链接上,用如下命令设置链接:`git branch –-set-upstreamdev origin/dev` 在执行git pull,则执行成功: ![SouthEast 44][] 3.如果合并有冲突,则解决冲突,并在本地提交; 4.没有冲突或者解决掉冲突后,再用`git push origin branch-name`推送就能成功! 在本地创建和远程分支对应的分支,分支名称最好一致,使用命令: git branch –b branch-nameorigin/branch-name # 4 标签 # 有时候需要发布特定的版本,因为提交的进度指针太多,需要制定一个特定的快照标签来标识它,就相当于指定到commit后的某个进度的指针,但是这个指针是不可移动的,是特定的; ## 打标签 ## 切换到分支上打标签: git checkout master git tag v1.0 创建的标签指定到了当前分支的HEAD上了。 ![SouthEast 45][] 查看标签信息:git show tag-name 注意:标签是按照字母排序的,不是按照时间顺序排序的。 ![SouthEast 46][] 为标签加说明,使其易读性提高:git tag –a v0.1 –m ”说明内容”提交地址 ![SouthEast 47][] 用-s为私钥签名加上标签(PGP签名): $ git tag –s v0.2 ”signed version 0.2 released ” 2b0126c ## 操作标签 ## 标签推送:git pushv0.1 ![SouthEast 48][] ![SouthEast 49][] 一次性推送全部标签: gitpush origin --tags 删除标签:git tag –dv0.5 删除的是本地的标签; ![SouthEast 50][] 如果标签已经推送到远程,先要删除本地标签,然后删除远程标签; 删除远程标签的命令也是push,格式:git push origin :refs/tags/v0.5 ![SouthEast 51][] # 5 自定义配置 # ## 自定义Git ## 有时候为了让个别地方更加醒目的显示,加大识别度,提高工作效率,我们会设置一些其他的配置项,比如设置颜色:git config –global color.ui true ![SouthEast 52][] ## 忽略特殊文件 ## 有的文件更改后不需要提交,但是系统会一直提示跟踪警告,如果不想让其提示,这时需要建立一个忽略目录,将不需要提交的文件的名称填写进入就可以了,Git就会忽略这些文件了。 忽略文件规则: Ø 忽略操作系统自动生成的文件,比如缩略图等; Ø 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件; Ø 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。 步骤: 需要现在根目录下生成.gitignore,用于存储需要忽略的文件的名称 1.点击版本库try,生成Git Bash命令窗口 创建.gitingore文件输入命令:touch .gitignore ![SouthEast 53][] ![SouthEast 54][] 2. 查看哪些未提交文件:git status ![SouthEast 55][] 三个红色的文件: 其中.example.txt.swp文件是我前面对example.txt文件执行vi命令的时候成的文件,不能提交,但是一直会显示未提交; .gitignore文件是刚刚生成用于存储忽略文件名的文件; webConfig.txt文件是我建立的一个用于存储配置内容的文件; 这三个文件都需要忽略掉。 3. 然后用记事本打开.gitignore文件,在里面输入webConfig.txt和 .example.txt.swp,保存,此时再查看状态: ![SouthEast 56][] 剩下自身没有忽略掉,试着输入本身名称,看能不能忽略掉: ![SouthEast 57][] 查看状态: ![SouthEast 58][] 由此可知,.gitignore对自身亦可忽略! 4. 将忽略文件推送到远程,远程仓库就可以获取相应的忽略配置; 特殊情况 第一种情况: 有时候,需要对忽略掉的文件提交:git add webConfig.txt 但是,此时提价不了,系统会提示 Use –f if you really want to add them. 此时,可以通过-f强制添加到Git $: git add –f webConfig.txt 第二种情况:有时候,可能是.gitignore写得有问题,需要找出来到底哪个规则写错了,可以用gitcheck-ignore命令检查 命令:gitcheck-ignore –v webConfig.txt ![SouthEast 59][] 可以看到Git提示该文件在忽略文件.gitingore的第三行,因此可以凭借此找到该文件修改。 ## 命令别名 ## 给账户或者某个版本库下的命令根据自己的喜好设置别名,用起来更加方便,更加easy; 状态别名:gitconfig –gloabal alias.st status ![SouthEast 60][] 切换别名:gitconfig –gloabal alias.co checkout 提交别名:gitconfig –gloabal alias.ci commit 分支别名:gitconfig –gloabal alias.br branch 撤销别名:gitconfig –gloabal alias.unstage ‘reset HEAD’ 提交日志别名:gitconfig –gloabal alias.last ‘lag-1’ (显示最近一次的提交) 牛逼配置: git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" 注意:配置文件的时候加入gloabal,表示全局变量,对状态电脑上的这个用户所有版本库都起作用,如果不加,则只对当前版本库起作用。 查看当前版本下的配置命令:try仓库下执行:cat .git/config ![SouthEast 61][] 查看用户的命令配置:在用户根目录下执行:cat .gitconfig ![SouthEast 62][] 此时可以看到alias 后面的命令配置项。 这两个文件都是隐藏起来的,配置的时候也可以直接修改文件里面的内容,如果修改错误,可以删除配置文件,重新配置; # 6 通过Github参与开源项目 # Github一般叫做开源协作社区,大家都可以参与开源项目 关注某个名气较高,内容丰富的Github账户,如果想要参与一个项目,为这个项目贡献自己的代码,或者单单查看分析别人的项目,从这个项目代码中获取自己的经验,丰富自己。 那么需要你首先要进入别人的账户下的版本库,fork别人仓库里的代码,克隆到本地,分析修改,add & commit; 然后,通过本地仓库push到远程,如果想要贡献自己的代码,可以pull request name’s Github repository,如果主人心情好,觉得你的代码有价值,就会采纳合并到项目开分支上,如果心情不好,不想采纳,谁也没得办法! 关注别人的账户:follow一下 关注别人的仓库:start一下 克隆别人的仓库:fork一下 ![SouthEast 63][] [SouthEast]: /images/20220720/ab29860dbe6a4a938c916f204d2e5f1c.png [SouthEast 1]: /images/20220720/a532ff11d0a74c8fb3968d751c0c61a7.png [SouthEast 2]: /images/20220720/b9bba6402a9d42d68891b8706c6c3cc7.png [SouthEast 3]: /images/20220720/10281f4e3aa244f38f00197cbc499b86.png [SouthEast 4]: /images/20220720/1870c0704aa74382b726aa24618e983c.png [SouthEast 5]: /images/20220720/0cbed027efad4f749296414d702e9a7a.png [SouthEast 6]: /images/20220720/a7b812ecbfe14a1f9367061cc5f54296.png [SouthEast 7]: /images/20220720/d61700b2e94e435ab61ff574832d7980.png [SouthEast 8]: /images/20220720/671c5ba99c6e4cee91325b43abc48384.png [SouthEast 9]: /images/20220720/bb407a179d254902a2d4e89b1fef0d4c.png [SouthEast 10]: /images/20220720/9b7fa79b1ebf4616a45bd2dd7a6ce657.png [SouthEast 11]: /images/20220720/f27b4908466f47cb8855e5101a185a7a.png [SouthEast 12]: /images/20220720/7d9deedceff34cd3844a986e91b01de2.png [SouthEast 13]: /images/20220720/01507a8b94e0475aa8a22fa6512f9e64.png [SouthEast 14]: /images/20220720/3d993bade44b4b1ea486a56bdaafd347.png [SouthEast 15]: /images/20220720/41e827fb56cb476db1be00d74514b27a.png [SouthEast 16]: /images/20220720/afbe1c0bac4e4ab197f41c311609fa6b.png [SouthEast 17]: /images/20220720/85fb89a2504144e59190a32abb6d8254.png [SouthEast 18]: /images/20220720/5f9dc53cf5c1429c9b57df241bc7b70b.png [SouthEast 19]: /images/20220720/267bdc5986b04927812fe5bf68dbfbfd.png [SouthEast 20]: /images/20220720/faa3da09f24d46f7b5dacd041eee23f4.png [SouthEast 21]: /images/20220720/2b586a33e957406d9098dd4667275371.png [SouthEast 22]: /images/20220720/9cdf75698c9442f5926f09ef7b88efd9.png [SouthEast 23]: /images/20220720/d6cab7cf104d408d981ea47b641e30ef.png [SouthEast 24]: /images/20220720/a5837eaf8bce474abd8e561659403a85.png [SouthEast 25]: /images/20220720/8079c63d35a34905b75ccb50ea207ced.png [SouthEast 26]: /images/20220720/01e1f74382e24eceb82f3660f8aa0417.png [SouthEast 27]: /images/20220720/d4a3065ecf1e4d7f8766a41464f9f9cd.png [SouthEast 28]: /images/20220720/3768b05f1a064e60aad906934e012215.png [SouthEast 29]: /images/20220720/1af5055d7a5f421b8e61dcc0ffd0abc4.png [SouthEast 30]: /images/20220720/d2f7bfe4ee7344b784df7e417b36e71a.png [Center]: /images/20220720/2418759b485d40f4b633602ae1850a9e.png [SouthEast 31]: /images/20220720/afc9120f09194e4c994c883a66a03c6f.png [SouthEast 32]: /images/20220720/ed155599a3c840f7858a27ca6af90659.png [SouthEast 33]: /images/20220720/5f44cfebddf0411d8a7347ed4a72b3db.png [SouthEast 34]: /images/20220720/a4b3eba17c3348b992672f2e05ffeed5.png [SouthEast 35]: /images/20220720/20f7314baa124e61811052c13c2f7ca0.png [SouthEast 36]: /images/20220720/1b88b6e674d04a2b928a3d958bfc55bd.png [SouthEast 37]: /images/20220720/fc94dae67eb14d16a4f917f3b88004f3.png [SouthEast 38]: /images/20220720/47e436e348e7438d95cbcf8b6ee253f1.png [SouthEast 39]: /images/20220720/d27912a6398f40e1b3f0d53f17a2f915.png [SouthEast 40]: /images/20220720/30f6231f9a2e4778a41338743dff6d74.png [SouthEast 41]: /images/20220720/000307e9299047ccad287530123dfaec.png [SouthEast 42]: /images/20220720/c0add857dd104844a5ef1ddfa0633be1.png [SouthEast 43]: /images/20220720/b2e2811c665d4098a380f5ed87e8882d.png [SouthEast 44]: /images/20220720/7d03942e7af04a259c928a3d64127a2a.png [SouthEast 45]: /images/20220720/c79ee1d6acaa4bca9a40d11bbd94bc5f.png [SouthEast 46]: /images/20220720/8e6ceeb551394ec5b6a9fcf2efee27d6.png [SouthEast 47]: /images/20220720/166937ce0d0844498e754c2acc4dbb99.png [SouthEast 48]: /images/20220720/a974d460f1e44020980a6072de569282.png [SouthEast 49]: /images/20220720/a0cb4aea572e45a18b84f018fdd4db1d.png [SouthEast 50]: /images/20220720/29229b341a2d46efaca1defb0d2a8b78.png [SouthEast 51]: /images/20220720/232187efde5e40858234b9260804be1f.png [SouthEast 52]: /images/20220720/43ed56b9ff82413089040326e364b117.png [SouthEast 53]: /images/20220720/69cacb4db7374ec09d9b6f245bb0c5bb.png [SouthEast 54]: /images/20220720/24cf961643944777bf0ef3c0525610e7.png [SouthEast 55]: /images/20220720/4f598f21ec90439392286b40eb06bf3b.png [SouthEast 56]: /images/20220720/102ef53b5b1a4def9d1eb6e85621b768.png [SouthEast 57]: /images/20220720/8146a3f0983741a895ebea0f5d49719e.png [SouthEast 58]: /images/20220720/ec707447b5bf4198946f06ae1ca9d5dc.png [SouthEast 59]: /images/20220720/f9ab4297c28e451da7060287acf82fba.png [SouthEast 60]: /images/20220720/4b3595169d8c4deeba9e4cf95db3fd99.png [SouthEast 61]: /images/20220720/31c92553eccb49479bd0c4c8466853c1.png [SouthEast 62]: /images/20220720/205e836bd5174ee5b49fb0fe85a4e6cb.png [SouthEast 63]: /images/20220720/833b1e67146b47418b8a893471b3d678.png
相关 「学习笔记」学习笔记合集 可以点击 [https://www.cnblogs.com/hongzy/tag/%E7%AC%94%E8%AE%B0/][https_www.cnblogs.com_hong 淩亂°似流年/ 2023年06月05日 12:48/ 0 赞/ 20 阅读
相关 学习笔记 学习笔记 sudo adduser lilei sudo usermod -G sudo lilei sudo deluse 客官°小女子只卖身不卖艺/ 2022年11月26日 12:58/ 0 赞/ 27 阅读
相关 学习笔记 \ajax: 1、概念:异步的JavaScript 和 xml 1.1异步和同步:客户端和服务器端相互通信的基础上 \客户端必须等待服务器端的响应。在等待的期间客户 深藏阁楼爱情的钟/ 2022年10月29日 13:24/ 0 赞/ 281 阅读
相关 学习笔记 一. CSS 如何实现文字的垂直居中 1. 二.问题记录 1.创建新的JSP页面的时候报错:The superclass “javax.servlet.http.H 超、凢脫俗/ 2022年08月20日 09:30/ 0 赞/ 144 阅读
相关 【学习笔记】git学习笔记 使用git的好处 可以保存每个版本,只要在每个版本做完后进行上传 ![这里写图片描述][70] 可以异地读取更新 爱被打了一巴掌/ 2022年05月14日 09:10/ 0 赞/ 407 阅读
相关 学习笔记 我的第一天学习c\ 1、c\学习网址 [https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide 矫情吗;*/ 2022年05月08日 06:16/ 0 赞/ 326 阅读
相关 学习笔记 测试 ORM JPA EJB JPQL MOM JMS ORM 对象关系映射 英语:Object Relational M 爱被打了一巴掌/ 2022年02月16日 01:57/ 0 赞/ 397 阅读
相关 [笔记] Docker 学习笔记 1. 什么是 Docker > 官方文档:[链接][Link 1],中文文档:[链接][Link 2] Docker 属于 Linux 容器的一种封装,提供简单易用的容 缺乏、安全感/ 2021年11月27日 02:01/ 0 赞/ 592 阅读
相关 学习笔记 1、js如何将136分钟转化为几小时,几分钟 return (Math.floor(minutes/60) + "小时" + (minutes%60) + "分" 爱被打了一巴掌/ 2021年07月25日 23:46/ 0 赞/ 1051 阅读
还没有评论,来说两句吧...