草庐IT

Git的安装和学习使用(一)

安幻辞 2023-12-11 原文

本篇文章旨在分享本人在学习Git时的随笔记🤩

文章目录

一、Git 快速入门

1.1 Git 概述

  Git是一个免费的,开源的分布式版本控制系统,可以快速高效的处理从小型或大型的各种项目。Git易于学习,占用空间小,性能快得惊人。

1.2 SCM概述

  SCM(Software Configuration Management,软件配置管理)是一种标识、组织和控制修改的技术。它应用于整个软件生存周期。

  Git 软件比 Subversion、CVS、Perforce 和 ClearCase 等 SCM(Software Configuration Management 软件配置管理)工具具有性价比更高的本地分支、方便的暂存区域和多个工作流等功能。

1.3 Git 安装

1.3.1 软件下载

软件官网地址:https://git-scm.com/

软件下载地址为:下载

最早 Git 是在 Linux 上开发的,目前 Git 可以在 Linux、Unix、Mac 和Windows这几大平台正常运行。本次安装时 Windows 系统 2.40.0 版本进行下载。

1.3.2 软件安装

  Git 软件安装的步骤虽然比较多,但是整个安装过程还是比较简单的,双击 exe 执行文件,按照引导界面的提示安装即可

点击 Next 下一步,选择安装目录,默认安装在 C 盘中

点击 Next 下一步,选择组件,此处默认即可

点击 Next 下一步,配置启动菜单,此处默认即可

点击 Next 下一步,配置编辑器工具,这里选择自己习惯的编辑工具即可。

后续不需要其他特殊配置,可以连续默认选择 Next 下一步即可。

1.3.3 软件测试

在 Windows 桌面空白处,点击鼠标右键,弹出右键菜单

Git 软件安装后,会在右键菜单中增加两个菜单

  • Git GUI Here
  • Git Bash Here

此处仅仅是为了验证 Git 软件安装的效果,所以选择 Git Bash Here 菜单,选择后,Windows系统弹出 Git 软件的命令行黑窗口。

窗口弹出后,可以输出 Git 软件的操作指令。此时我们使用键盘输入操作指令:git -v 或 git --version,查看当前 Git 软件的安装版本。

git -v

git – version

输入指令回车后,如果黑窗口中打印出咱们安装的软件版本 2.40.0,Git 软件安装成功了。

二、Git 基础使用

2.1 Git 概念

  Git 是一个免费的,开源的分布式版本控制软件系统,学习 Git 软件的具体操作前,我们需要对一些基础的概念和名词进行解释。

2.1.1 版本控制

  一般情况下,一份文件,无论是 DOC 办公文档,还是编程源码文件,我们都是对文件大量的修改和变更。但是我们无法保证每一次的修改和变更都是正确并有效的,往往需要追溯历史操作,而版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。

2.1.2 分布式

  在 Git 中,每个版本库都是一样的重要。所以就不存在就像集中式版本控制软件中以谁为主得问题。任何一个库都可以当成主库。这种方式可以更大限度地保证项目资源的安全。

2.1.3 系统

  一般软件系统指的是可以独立运行地软件应用程序。而 Git 软件就是专门用于代码文件进行版本控制的应用程序。同时也提供客户端对系统所管理的资源进行访问。

2.1.4 区域

  Git 软件为了更方便地对文件进行版本控制,根据功能的不同划分了三个区域。

  • 存储区域:Git 软件用于存储资源的区域。一般指的就是.git 文件夹
  • 工作区域:Git 软件对外提供资源的区域,此区域可人工对资源进行处理。
  • 暂存区:Git 用于比对存储区域和工作区域的区域。Git 根据对比的结果,可以对不同状态的文件执行操作。

2.2 Git 基础指令

  Git 软件是免费、开源的。最初 Git 软件是为辅助 Linux 内核开发的一套软件,所以在使用时,简单常用的 Linux 洗头膏操作指令是可以直接使用的。

2.2.1 Linux 系统操作指令

指令含义说明
cd 目录change directory改变操作目录
cd …退回到上一级目录
pwdPrint work directory打印工作目录
lslist directory contents显示当前目录的文件及子文件目录
llls -l 简化版本更详细地显示当前目录的文件及子文件目录
mkdir 文件夹名称make directory新建一个文件夹
rm 文件remove删除文件
rm -r 文件夹Remove删除文件目录
touch 文件如果创建的文件不存在,那么创建一个空文件
reset清屏
clear清屏
exit退出终端窗口

2.2.2 Git软件指令

配置信息

  作为一个工具软件来讲,一般都会有默认的配置文件来保存基础的配置信息,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目录,用于管理当前版本库。
向版本库中添加文件

查看版本库状态指令:

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 参数,等同把增加、修改两步操作融合

查看版本库文件历史
  1. 采用 log 指令进行查看

git log

  1. 也可以美化一下显示方式

git log --pretty=oneline

  1. 简单方式查看

git log --oneline

删除文件

删除不是指从物理文件目录中删除,而是从版本库中删除。

  • 从本地文件从目录中删除
  • 查看 Git 版本库状态信息
  • 使用指令从版本库中恢复文件

git retore test.txt

如果想要真正的删除文件,那么也要将版本库中同时删除。

恢复历史文件
  • 查看版本库信息
  • 将版本库重置到某个版本

#这里的f2f113f就是版本Hash值,用于唯一确定版本库中此版本的标记

# 当然了这是一个简短版,完整的比较长

# 如果不记得具体的版本值,版本值也可以使用HEAD值,比如最新的上一个版本:HEAD^

# 如果后退更多的版本,可以使用 HEAD~N

git reset --hard f2f113f

  • 被删除的文件回来了。

最后

对各位小伙伴有帮助的话,希望可以点赞❤️+收藏⭐,谢谢各位大佬~~🙌🙌🙌

有关Git的安装和学习使用(一)的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用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

  2. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  3. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类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

  4. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  5. ruby - 在 Ruby 中使用匿名模块 - 2

    假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于

  6. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用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请求没有正确的命名空间。任何人都可以建议我

  7. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  8. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  9. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  10. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为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

随机推荐