返回顶部
首页 > 资讯 > 精选 >Git惯用操作有哪些
  • 390
分享到

Git惯用操作有哪些

2023-06-29 08:06:25 390人浏览 薄情痞子
摘要

这篇“git惯用操作有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Git惯用操作有哪些”文章吧。一、创建 Git 仓库

这篇“git惯用操作有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Git惯用操作有哪些”文章吧。

一、创建 Git 仓库

打开需要创建仓库的位置,打开Git命令界面或Terminal终端输入git init创建仓库。

创建完成后得到提示Initialized empty Git repository in /Users/huaqiangsun/Git/.git/ 已初始化空的Git仓库在当前目录中,同时可以看到目录中多出来.git文件夹(一般为隐藏文件夹,Mac下可通过shift + cmd + . 组合快捷键查看隐藏文件)。

二、查看仓库文件状态

提起Git,常常会提到工作区、暂存区、版本库概念,这是很通用的说法,其实工作区一般就是指我们能看到的文件、本地操作文件所在的目录,我们正常编写的代码文件、管理的资源文件都是在工作区里操作,这里的文件又细分为受版本控制的文件和不受版本控制的文件。

提到暂存区,就和index文件建立了联系,工作区的新文件和已经修改受版本控制的文件,使用 git add file_name 就可以添加到暂存区,相当于登记报个名,以后提交到版本库的时候会把这些登记的文件都带上,实际上执行了 git add 命令的文件都生成了对应的 object 对象,放在.git/objects目录下,状态变为 staged, 当提交到版本库时,分支会引用这些对象。

版本库就是文件修改的目的地了,最终的修改会提交到版本库,这时提交的文件状态变成 committed,其实也是一种 unmodified 状态,版本库会记录你的每一次提交,可以追溯你每一次修改的内容。

文件状态通常可以分为:

  • 不受版本控制的 untracked 状态;

  • 受版本控制并且已修改的 modified 状态;

  • 受版本控制已修改并提交到暂存区的 staged 状态;

  • 从暂存区已经提交到本地仓库的 committed 状态;

  • 提交到本地仓库未修改或者从远程仓库克隆下来的 unmodified 状态;

使用git status可以看到当前仓库的文件修改和未提交文件情况。

其中,

  • Changes to be committed为暂存区已存在,需要进行提交进仓库的文件;

  • Changes not staged for commit为文件被操作尚未提交至暂存区的文件,此类文件需要使用add将其添加至缓存区再提交进仓库;

  • Untracked files为未入暂存区文件;

当修改后的文件添加至暂存区后,在提交之前再次进行修改后,非暂存区会再次出现该文件,需再次add添加入暂存区,否则直接commit后仓库中的文件不会包含二次修改的内容。

总结

  • git status 只能查看未传送提交的次数,不能查看具体文件信息;

  • git cherry -v只能查看未传送提交的描述/说明;

  • git log master ^origin/master则可以查看未传送提交的详细信息;

三、向暂存区中添加文件

使用git add [fileName ...]用于将文件添加至暂存区中。

若未提示信息则表示文件添加成功。

添加文件需要填写正确的文件路径,若需要添加多个文件使用空格分隔。

四、提交暂存区文件

使用git commit -m "description"用于将已添加到暂存区的文件进行提交,每次提交可提交多个文件。

五、从仓库中移除文件

当从磁盘删除已提交给仓库中的文件时,由于仓库缓存中还存在该文件,所以使用git rm [fileName]删除缓存中的文件,再提交后该文件就不再纳入版本管理。

若当前操作为误操作,可以通过回滚操作找回文件。

如果要删除之前修改过或已经放到暂存区的文件,则必须使用强制删除选项 -f配参。

若由于误操作将一些非必要文件提交至仓库,可以使用--cached,只删除仓库中的记录并不从磁盘上删除。

git rm 命令后面可以列出文件或者目录的名字,也可以使用 glob 模式。例如:git rm log/\*.log

注意星号 * 之前的反斜杠 \, 因为 Git 有自己的文件模式扩展匹配方式,所以不用 shell 来帮忙展开。 此命令删除 log/ 目录下扩展名为 .log 的所有文件。

六、设置忽略文件

对于一些日志文件、临时文件以及一些软件生成的配置或输出文件并不需要进行文件管理,所以可以创建一个.gitignore文件将需要忽略的文件名称或表达式写入.gitignore文件,以实现忽略文件的目的。

文件 .gitignore 格式规范如下:

  • 所有空行或者以 # 开头的行都会被 Git 忽略。

  • 可以使用标准 glob 模式匹配,它会递归地应用在整个工作区中。

  • 匹配模式可以以(/)开头防止递归。

  • 匹配模式可以以(/)结尾指定目录。

  • 要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。

git同样支持Glob模式,Glob模式为Shell中简化的正则表达式

  • 星号(*)匹配零个或多个任意字符;

  • [abc] 匹配任何一个列在方括号中的字符 (这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);

  • 问号(?)只匹配一个任意字符;
    如果在方括号中使用短划线分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。

  • 使用两个星号(**)表示匹配任意中间目录,比如 az 可以匹配 a/z 、 a/b/z 或 a/b/c/z 等。

.gitignore 文件生效步骤如下:

  • git status --ignored // 查看状态,验证是否已包括忽略的文件

  • git rm -r --cached . // 清除缓存,-r表示递归删除

  • git status --ignored // 查看具体效果

  • git add . // 重新trace file

  • git commit -m "update .gitignore" // 提交和注释

七、查看文件修改内容

使用git status只能查看每个文件的修改状态,但是无法看到每个文件的内容有哪些被修改,所以可以使用git diff查看所有追踪文件的修改对比。

需要注意的是,git diff是查看未暂存的文件中被修改的内容,当将该文件添加入暂存区后,就无法再通过git diff查看修改内容,需要使用git diff --cached

八、移动文件

当需要重命名文件时,可以使用git mv [oldFileName] [new FileName]Git对于重命名操作会分为三步进行,第一步首先重命名文件,然后再从仓库中删除原有的文件,最后将新文件添加进暂存区等待提交。

$ mv README.md LOOKME.md$ git rm README.md$ git add LOOKME.md

若通过软件进行批量修改文件时,也要按照该流程先删除原文件再添加新文件。

九、撤销操作

当由于一些操作失误提交或修改了文件内容时,可以通过Git回滚操作,回滚到修改之前的状态。

回忆下前面提到的文件状态,文件状态通常可以分为:

  • 不受版本控制的 untracked 状态;

  • 受版本控制并且已修改的 modified 状态;

  • 受版本控制已修改并提交到暂存区的 staged 状态;

  • 从暂存区已经提交到本地仓库的 committed 状态;

  • 提交到本地仓库未修改或者从远程仓库克隆下来的 unmodified 状态;

9.1 撤销暂存区文件

使用git restore --staged [fileName]git reset HEAD [fileName]可以将暂存区文件恢复。

说明:git restore命令是 Git 2.23 版本之后新加的,用来分担 git checkout 命令的功能,通过用暂存区或者版本库中的文件覆盖本地文件的修改,以达到回退修改的目的,同时也可以使用版本库中的文件覆盖暂存区的文件,达到回退git add命令的目的。

!!注意,这个操作不会影响分支记录,就是相当于之前的 git checkout 命令重新检出一份文件来覆盖本地的修改。

git reset 其实就是用来设置分支的头部指向,当进行了一系列的提交之后,忽然发现最近的几次提交有问题,想从提交记录中删除,这是就会用到 git reset 命令,这个命令后面跟 commit id,表示当前分支回退到某个 commit id 对应的状态,之后的日志记录被删除,工作区中的文件状态根据参数的不同会恢复到不同的状态。

  • --soft: 被回退的那些版本的修改会被放在暂存区,可以再次提交。

  • --mixed: 默认选项,被回退的那些版本的修改会放在工作目录,可以先加到暂存区,然后再提交。

  • --hard: 被回退的那些版本的修改会直接舍弃,就像它们没有来过一样。

使用 git rest HEAD file_name 命令就可以将一个文件回退到 HEAD 指向版本所对应的状态,其实就是当前版本库中的状态,也就相当于还原了本地的修改。

对于工作区中未加到暂存区和版本库的文件,执行了 git add 操作之后可通过如下方法还原:

  • git rm --cached newfile

  • git restore --staged newfile

  • git reset HEAD newfile

注:使用后两个命令的时候不能是版本库的第一个文件。

9.2 撤销对文件的修改

使用git checkout -- [fileName]可以将该文件回滚到上一次提交的状态。

!注:记得git checkout -- <file>是一个危险的命令。 你对那个文件在本地的任何修改都会消失。Git 会用最近提交的版本覆盖掉它。 除非你确实清楚不想要对那个文件的本地修改了,否则请不要使用这个命令。

声明:由于没有添加到暂存区的文件无法被追踪,所以它的任何修改是没有办法回退!只能通过本地文件撤销操作进行。

十、查看操作历史

如果想要查看某个项目中所有提交信息,可以使用git log打印所有参与者的提交记录。

每条记录都会显示提交的SHA-1 校验,作者名字和作者邮箱以及提交时间并按提交时间倒序排列。

除了简单的git log外,还可以添加参数用于筛选和格式化输出信息:

  • -p --patch:它会显示每次提交所引入的差异。 也可以限制显示的日志条目数量,例如使用 -2 选项来只显示最近的两次提交。

  • --stat:在每次提交的下面列出所有被修改过的文件、有多少文件被修改了以及被修改过的文件的哪些行被移除或是添加了。 在每次提交的最后还有一个总结。

  • --pretty:这个选项有一些内建的子选项供你使用。 比如 oneline 会将每个提交放在一行显示,在浏览大量的提交时非常有用。 另外还有 shortfullfuller 选项,它们展示信息的格式基本一致,但是详尽程度不一;


示例 10.1 将日志信息显示在一行上

$ git log --pretty=oneline

示例 10.2 以 short 格式输出仓库修改信息

$ git log --pretty=short

示例 10.3 以 full 格式输出仓库修改信息

$ git log --pretty=full

示例 10.4 以 fuller 格式输出仓库修改信息

$ git log --pretty=fuller


修改文件人员与提交文件人员可以不是同一个人,所以在查询日志时会区分修改人与提交人。

以上就是关于“Git惯用操作有哪些”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: Git惯用操作有哪些

本文链接: https://lsjlt.com/news/323823.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Git惯用操作有哪些
    这篇“Git惯用操作有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Git惯用操作有哪些”文章吧。一、创建 Git 仓库...
    99+
    2023-06-29
  • Python时操作坏习惯有哪些
    Python时操作坏习惯有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。很多文章都有介绍怎么写好 Python,我今天呢,相反,说说写代码时的几个坏习惯。有的习惯会让 ...
    99+
    2023-06-02
  • Git基本操作有哪些
    这篇文章将为大家详细讲解有关Git基本操作有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。git 是一个版本管理工具,是可以在你电脑不联网的情况下,只在本地使用的一个版本管理工具,其作用就是可以让你更...
    99+
    2023-06-27
  • Git常用操作命令有哪些
    本篇内容介绍了“Git常用操作命令有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、Git 概念Git 是一个开源的分布式版本控制系统...
    99+
    2023-06-29
  • git常用的操作命令有哪些
    本文小编为大家详细介绍“git常用的操作命令有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“git常用的操作命令有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、使用Git克隆项目右键选择Git Ba...
    99+
    2023-06-27
  • Git中常见的操作有哪些
    这篇文章给大家分享的是有关Git中常见的操作有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Git版本控制开发难题在实际开发中我们会遇到一些问题,电脑蓝屏,代码丢了,懊悔不?磁盘坏了,文件没了,懊悔不?时间长...
    99+
    2023-06-29
  • Git常用的基本操作命令有哪些
    这篇文章给大家分享的是有关Git常用的基本操作命令有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。git 常用命令1. 常用$ git remote add origi...
    99+
    2023-06-29
  • Git的基本操作命令有哪些
    本篇内容主要讲解“Git的基本操作命令有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Git的基本操作命令有哪些”吧!Git 基本操作Git 的工作就是创建和保存你项目的快照及与之后的快照进...
    99+
    2023-06-17
  • Git本地分支的操作有哪些
    本文小编为大家详细介绍“Git本地分支的操作有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Git本地分支的操作有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一.Git分支的作用在进行多人协作开发的时...
    99+
    2023-06-29
  • Linux中Git集中操作命令有哪些
    这篇文章主要为大家展示了“Linux中Git集中操作命令有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中Git集中操作命令有哪些”这篇文章吧。SyntaxHighlighterg...
    99+
    2023-06-09
  • Git分支基本操作方法有哪些
    这篇文章主要讲解了“Git分支基本操作方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Git分支基本操作方法有哪些”吧!1、创建分支(1)创建分支Git 是怎么创建新分支的呢?很简单...
    99+
    2023-07-04
  • Linux和Windows下git的基本操作有哪些
    这篇文章主要介绍“Linux和Windows下git的基本操作有哪些”,在日常操作中,相信很多人在Linux和Windows下git的基本操作有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux和W...
    99+
    2023-06-29
  • UNIX命令行惯用语有哪些
    这篇文章给大家分享的是有关UNIX命令行惯用语有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。开始学习之旅在以前的对话 UNIX 专栏中曾多次介绍了 find 命令,这是一种非常有用的实用工具,可用于扫描并处...
    99+
    2023-06-13
  • 操作系统有哪些作用
    这篇文章将为大家详细讲解有关操作系统有哪些作用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。操作系统的作用是控制和管理系统资源。操作系统(operation system,简称OS)是管理计...
    99+
    2023-06-15
  • Git的工作流有哪些
    本篇内容主要讲解“Git的工作流有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Git的工作流有哪些”吧!在讲 Git Flow 之前,我们先讲讲别的东西什么是版本?版是指印刷时的版,本就是...
    99+
    2023-07-05
  • 使用电脑的坏习惯有哪些
    这篇“使用电脑的坏习惯有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“使用电脑的坏习惯有哪些”文章吧。1. 每次开机后的...
    99+
    2023-06-28
  • YARN常用操作有哪些
    这篇文章将为大家详细讲解有关YARN常用操作有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。YARN (Yet Another Resource Negotiator,另一种资源协调者)是一 种新的 ...
    99+
    2023-06-27
  • FreeBSD常用操作有哪些
    这篇“FreeBSD常用操作有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“FreeBSD常用操作有哪些”文章吧。1. ...
    99+
    2023-06-27
  • kvm常用操作有哪些
    小编给大家分享一下kvm常用操作有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!KVM (全称是 Kernel-based Virtual Machine) ...
    99+
    2023-06-28
  • Nginx常用操作有哪些
    这篇文章主要介绍“Nginx常用操作有哪些”,在日常操作中,相信很多人在Nginx常用操作有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Nginx常用操作有哪些”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作