
本篇文章旨在分享本人在学习Git时的随笔记🤩
文章目录
Git是一个免费的,开源的分布式版本控制系统,可以快速高效的处理从小型或大型的各种项目。Git易于学习,占用空间小,性能快得惊人。
SCM(Software Configuration Management,软件配置管理)是一种标识、组织和控制修改的技术。它应用于整个软件生存周期。
Git 软件比 Subversion、CVS、Perforce 和 ClearCase 等 SCM(Software Configuration Management 软件配置管理)工具具有性价比更高的本地分支、方便的暂存区域和多个工作流等功能。
软件官网地址:https://git-scm.com/
软件下载地址为:下载
最早 Git 是在 Linux 上开发的,目前 Git 可以在 Linux、Unix、Mac 和Windows这几大平台正常运行。本次安装时 Windows 系统 2.40.0 版本进行下载。
Git 软件安装的步骤虽然比较多,但是整个安装过程还是比较简单的,双击 exe 执行文件,按照引导界面的提示安装即可
点击 Next 下一步,选择安装目录,默认安装在 C 盘中
点击 Next 下一步,选择组件,此处默认即可
点击 Next 下一步,配置启动菜单,此处默认即可
点击 Next 下一步,配置编辑器工具,这里选择自己习惯的编辑工具即可。
后续不需要其他特殊配置,可以连续默认选择 Next 下一步即可。
在 Windows 桌面空白处,点击鼠标右键,弹出右键菜单
Git 软件安装后,会在右键菜单中增加两个菜单
此处仅仅是为了验证 Git 软件安装的效果,所以选择 Git Bash Here 菜单,选择后,Windows系统弹出 Git 软件的命令行黑窗口。
窗口弹出后,可以输出 Git 软件的操作指令。此时我们使用键盘输入操作指令:git -v 或 git --version,查看当前 Git 软件的安装版本。
git -v
git – version
输入指令回车后,如果黑窗口中打印出咱们安装的软件版本 2.40.0,Git 软件安装成功了。
Git 是一个免费的,开源的分布式版本控制软件系统,学习 Git 软件的具体操作前,我们需要对一些基础的概念和名词进行解释。
一般情况下,一份文件,无论是 DOC 办公文档,还是编程源码文件,我们都是对文件大量的修改和变更。但是我们无法保证每一次的修改和变更都是正确并有效的,往往需要追溯历史操作,而版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。
在 Git 中,每个版本库都是一样的重要。所以就不存在就像集中式版本控制软件中以谁为主得问题。任何一个库都可以当成主库。这种方式可以更大限度地保证项目资源的安全。
一般软件系统指的是可以独立运行地软件应用程序。而 Git 软件就是专门用于代码文件进行版本控制的应用程序。同时也提供客户端对系统所管理的资源进行访问。
Git 软件为了更方便地对文件进行版本控制,根据功能的不同划分了三个区域。
Git 软件是免费、开源的。最初 Git 软件是为辅助 Linux 内核开发的一套软件,所以在使用时,简单常用的 Linux 洗头膏操作指令是可以直接使用的。
| 指令 | 含义 | 说明 |
|---|---|---|
| cd 目录 | change directory | 改变操作目录 |
| cd … | 退回到上一级目录 | |
| pwd | Print work directory | 打印工作目录 |
| ls | list directory contents | 显示当前目录的文件及子文件目录 |
| ll | ls -l 简化版本 | 更详细地显示当前目录的文件及子文件目录 |
| mkdir 文件夹名称 | make directory | 新建一个文件夹 |
| rm 文件 | remove | 删除文件 |
| rm -r 文件夹 | Remove | 删除文件目录 |
| touch 文件 | 如果创建的文件不存在,那么创建一个空文件 | |
| reset | 清屏 | |
| clear | 清屏 | |
| exit | 退出终端窗口 |
作为一个工具软件来讲,一般都会有默认的配置文件来保存基础的配置信息,Git 软件的配置文件位置:Git 软件的配置文件位置:Git安装路径/etc/gitcongif
默认情况下,我们可以通过指令获取软件的配置信息:
git config -l
你是第一次使用 Git 软件,需要配置 Git 软件的名称和邮箱,否则无法将文件那人到版本库中进行版本管理。当然了,配置的过程并不复杂,输入相关指令即可
git config --global user.name test
git config --global user.email test@atguigu.com
这里的 --global 表示全局配置,后续的所有文件操作都会使用该用户名称及邮箱。此时在操作系统的用户目录,会产生新的配置文件
文件中就包含了刚刚增加的配置信息

Git 软件主要用于管理文件的版本信息,但它只是一个软件,不可能安装后就直接将系统中的文件全部纳入它的管理范畴中。一般情况下,我们需要指定某一个文件目录作为软件的管理目录。目录主要管理文件的版本变化信息,也称之为 Git 软件的版本仓库目录。
具体操作过程如下:

git init


查看版本库状态指令:
git status
此时文件属于 untracked files(未追踪文件),只有文件被纳入版本库管理后,Git 软件才能对文件修改后的不同版本内容进行追踪处理,也就是 tracked files。
纳入版本库的管理指令:
git add test.txt
此时文件状态为 cached file暂存状态,可以随时修改或删除。
确定要把文件放入版本库中,还需要执行确定提交指令:
commit 表示真正地纳入到版本库中
-m 表示提交时的信息(message),是必须输入的。用于描述不同版本之间的差别信息
git commit -m “my first git file”
查看当前提交指令:
git show
原则上操作顺序应该是:
先修改,再提交
git add test.txt
git commit
简化后的操作为:
git commit -a -m “update file”
这个指令操作多了个 -a 参数,等同把增加、修改两步操作融合
git log
git log --pretty=oneline
git log --oneline
删除不是指从物理文件目录中删除,而是从版本库中删除。
git retore test.txt
如果想要真正的删除文件,那么也要将版本库中同时删除。
#这里的f2f113f就是版本Hash值,用于唯一确定版本库中此版本的标记
# 当然了这是一个简短版,完整的比较长
# 如果不记得具体的版本值,版本值也可以使用HEAD值,比如最新的上一个版本:HEAD^
# 如果后退更多的版本,可以使用 HEAD~N
git reset --hard f2f113f
对各位小伙伴有帮助的话,希望可以点赞❤️+收藏⭐,谢谢各位大佬~~🙌🙌🙌
我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div
我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看rubyzip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于
我正在尝试使用ruby和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po