首页 > 其他分享 >Git - 基本操作

Git - 基本操作

时间:2024-09-25 21:50:36浏览次数:6  
标签:文件 git 命令 Git 提交 readme 基本操作

Git 基本操作(本地库)


head


很多小伙伴可能都听说过 Git,那么 Git 到底是什么? 为什么那么多人都在使用它? 
Git 是一个开源的分布式版本控制系统,用于敏捷、高效地处理任何大中小项目,特别是对于团队协作开发起到了积极有效的推进作用。
通俗地讲,Git 就像我们玩 RPG 游戏时的存档系统,它可以随时保存你的游戏进度。一旦我们失败或者想重温剧情,就可以读取某个存档重新开始。
接下来,我将分为两篇文章分别介绍 Git 本地库管理和远程库操作等内容,相信很快你就会喜欢上 Git!

  • 准备


  • 安装 Git,这里是官方下载地址

  • 创建本地库文件夹,用来保存你的项目文件。然后在库文件夹中鼠标右键选择 Open Git Bash here,在当前位置运行 Git,自动打开命令行窗口:

    Bash here
    你的命令行可能与这里的不同,没关系,因为我们的目录结构本就不同。接下来我们开始使用 Git 命令完成本地库的基本操作。

  • 注意,以下操作请在上面窗口中执行(支持 Linux 命令)。


  • 操作流程


  1. git init

    这个命令应该是你新建项目后要执行的第一条命令,用来初始化你的本地库:

    init
    Git 提示,在当前目录下初始化了一个空的 Git 库。从现在开始 Git 开始接管你的本地库,全程跟踪本地库中所有文件的创建、修改和删除等状态。

    如果你够仔细,会发现命令行末端多出了一个 .git 文件夹。这个文件夹是由 Git 自动创建的隐藏文件(Linux 中以 "." 开始的都是隐藏文件),保存着版本库相关的文件。

    我们来看看这个文件夹:

    ls .git
    注意,不要轻易改动或删除 .git 文件夹中的所有文件!

    想要了解更多参数,可以查看【init 命令

  1. git status

    这个命令用于查看文件的各种状态。作为演示,我们新建一个 readme.txt 文件,向其中写入一些内容:

    readme.txt
    我们使用 status 命令查看 Git 对这个新建文件的反应:

    status
    Git 在未跟踪文件中列出了 readme.txt 文件,并且以红色标识,很醒目地提示我们该文件尚未跟踪。最后那行提示我们如何把未跟踪文件添加到暂存区。

    想要了解更多参数,可以查看【status 命令

  1. git add[-A / file name]

    这个命令将未跟踪文件添加到暂存区。我们试着添加 readme.txt:

    add
    执行命令后,Git 没有任何提示,说明文件添加成功。输入 status 命令查看一下:

    status
    Git 状态改变了,readme.txt 文件变成绿色,表示可提交了。同时 Git 还提示我们如何撤回刚才添加的文件。

    常用命令参数说明:

    -A     - 表示添加本地库中所有未跟踪文件;
    file name - 表示添加指定文件,可以一次性指定多个文件并用空格分开。

    想要了解更多参数,可以查看【add 命令

  1. git commit -m"message"

    这个命令的作用是把暂存区的文件提交到版本库。通过前面的操作,我们已经把 readme.txt 文件添加到了暂存区。接下来,我们把它提交到版本库:

    commit
    简单解释一下 "message" 参数,它可以是任何内容,建议输入本次提交的简短说明,方便在提交记录中快速定位。

    执行结果:

    1 file changed - 表示一个文件状态发生变化(提交了 readme.txt 文件);
    1 insertion(+) - 表示插入了一行内容(readme.txt 中新写入了一行)。

    想要了解更多参数,可以查看【commit 命令

  1. git log

    通过上面的一系列操作,我们成功地把一个新建文件提交到了版本库,提交记录也被完整保存下来。现在使用 log 命令查看我们刚才的提交记录:

    log
    看到那长长的数字串了吗?其实那是每次提交的 hash 码,一组很大的十六进制数。你可以把它当做一组序列号或者 id,它是唯一的,就是为了区分其它的提交。

    HEAD -> master - 表示 HEAD(版本指针)指向当前提交版本。

    想要了解更多参数,可以查看【log 命令

  1. git diff

    接下来我们继续修改 readme.txt 文件,再输入一行新的内容:

    cat readme
    文件内容被修改,我们使用 status 命令查看一下:

    status
    完美!看到那行红色文字了吗? Git 准确的检测到文件的变化,提醒我们 readme.txt 文件被改动了,但还没有添加到暂存区。Git 还贴心地告诉我们,可以使用 add 命令把修改内容添加到暂存区,或者使用 restore 命令放弃本次修改。

    如果不是你本人操作,或者是修改的时间太久了,你可能也忘记文件到底改动了什么。没关系,我们使用 diff 命令与上次提交的内容对比,马上一目了然:

    diff
    diff 命令不带参数时 Git 默认对比最近的一次提交。从执行结果可以看出,"b" 文件新增了一行内容(带 "+" 号),就是 "Provides both ..." 那行内容。

    好的,检查完修改内容,我们再次提交:

    add
    commit
    提交完成,查看当前状态:

    status
    Git 通知我们,整个工作区已经整理干净,无需提交任何文件。这一刻,有没有感觉心里瞬间通畅无比?

    想要了解更多参数,可以查看【diff 命令

  1. git reset

    当你看到这个命令时,可能猜到它是做什么的了。是的,它能把当前提交状态恢复到任何一次的状态。换句话说,可以升级或降级到任何版本。

    目前为止,readme.txt 文件已经被提交了两次。为了方便演示 reset 命令,现在使用前面学过的命令,对 readme.txt 文件再次修改,形成多次提交记录:

    modified
    add
    commit
    reflog
    现在我们已经有了三次提交记录:
  • 版本一:wrote a readme file
  • 版本二:Added the 'Provides both ...' line
  • 版本三:Added the 'with an unusually rich ...' line

    接下来,我们使用 reset 命令把 readme.txt 文件恢复到第一次提交的时刻:

    reset
    Git 提醒我们 HEAD 现在指向了 "5356e79"。这串数字从哪来的呢?它就是我们每次提交的 id 号的前七位(还记得吗?那长长得令人恐怖的数字串)。强烈推荐你使用 reflog 命令去查看,除非你有超强的记忆力!

    好了,回归正题,赶快去看看我们的劳动成果吧:

    readme.txt
    很神奇是吧? 文件内容好像不一样了。进入库文件夹打开 readme.txt,里面的内容的确变成第一次提交时的内容。一朝回到了解放前,此时的你一定很忐忑吧。不过大可不必,你完全可以让文件恢复到应该有的样子,这种事情对于 Git 来说简直不要太简单。

    既然如此,我们试着把文件恢复到第二次提交时刻:

    reflog
    reset
    轻轻松松的, Git 瞬间就把 readme.txt 文件恢复到第二次提交时的状态。怎么样,是不是很享受这种尽在掌握的感觉?

    想要了解更多参数,可以查看【reset 命令

  • 小结


上面我们使用了七个命令(reflog 归为 log 命令),熟练运用这些命令足以应对本地基本操作了。现在我们来总结一下这些命令:

  • git int 初始化本地库;

  • git status 查看本地库文件的跟踪情况;

  • git add 把文件添加到暂存区;

  • git commit 把文件提交到版本库;

  • git loggit reflog 查看提交记录;

  • git diff 查看指定版本间的差别。

  • git reset 把当前文件恢复到指定版本

    其实,大部分命令都可以附带参数,实现更精准地控制。如果想要更进一步了解参数的具体作用,请使用 git --help 命令。


标签:文件,git,命令,Git,提交,readme,基本操作
From: https://www.cnblogs.com/liujunapp/p/18424005

相关文章

  • git: 报错: no submodule mapping found in .gitmodules for path/位于未检出的子模组
    一,问题的现象:1,安装laravel/ui这个第三方库后,它的文件不出现在未跟踪文件中,如下:liuhongdi@lhdpc:/web/api/vendor/laravel/ui$gitls-files./liuhongdi@lhdpc:/web/api/vendor/laravel/ui$gitls-files././liuhongdi@lhdpc:/web/api/vendor/laravel/ui$lsauth-backe......
  • ECE-GY 6183 Real-Time Digital Signal Processing
    Real-Time Digital Signal Processing LabECE-GY 6183 / ECE-UY 4163Fall 2024This course is an introductiontothe real-time implementationofdigital signal processing (DSP) algorithms, with an emphasis on audio signal processing an......
  • 如何恢复被删除的 GitLab 项目?
    GitLab是一个全球知名的一体化DevOps平台,很多人都通过私有化部署GitLab来进行源代码托管。极狐GitLab是GitLab在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。学习极狐GitLab的相关资料:极狐GitLab官网极狐GitLab官网文档极狐GitLab论坛极狐G......
  • Git 工作区、暂存区与修改全解析
    工作区和暂存区是Git中一个非常重要的概念,弄明白了他们,就弄明白了Git的很多操作到底干了什么。‍工作区(WorkingDirectory)工作区,就是一个目录,比如我的LearnGit​文件夹就是一个工作区:​我们平时更新版本什么的,都是在这里完成的,可以理解成是在这里工作的。‍‍版本库......
  • Git 的安装和配置
    Git是跨平台的,可以在Windows,Linux、Unix和Mac各几大平台上使用由于笔者主要是使用Windows,其他平台下安装Git的方法暂且不表(可参考廖雪峰老师的博客:安装Git)‍Windows安装Git从Git官网直接下载安装程序,安装时大部分选项是英文说明的,如果看不懂,那就不用看懂,默认安装......
  • Git - 初识版本库
    版本库也叫仓库,英文名repository。‍创建版本库之前我们说了版本库的概念:存储版本的地方(存放各个版本之间差异的地方),通常称为版本库。通常版本库是以文件(夹)的形式存放在磁盘上:Git是用一个目录来存储各个版本和差异的文件,目录名字为.git​;SVN同理,用.svn​目录来存储......
  • Git - 版本管理
    本文我们来介绍下Git管理版本的几个常用命令。‍gitlog:查看提交日志随着对文件的不断修改与提交,Git帮我们管理了之前的各个版本。就好比玩一个能存档的游戏,每过一关就能帮我们存档,如果某一关没打过,就可以从上一个存档开始(而不用从头开始)。Git也可以帮助我们回退到上一个......
  • 记一次pycharm在使用git提交时需要输入ssh key的密码的问题
    问题描述:从gitlab上拉取了一份代码,长时间为动过,偶然一次提交时发现居然需要输入密码,我试了登录密码和常用密码都报错,无法提交代码 解决方案:1.选择菜单栏的git--管理远程 2.更新远程URL将url更新为git仓库右上角clone里面的http的地址,然后确认即可  3.继续你的......
  • 被误删除的 GitLab 群组和项目该如何恢复?
    本文分享如何使用极狐GitLab的项目延迟删除功能来避免仓库被用户误操作。该功能设置了删除延时时间,在延时期间内,用户还可以对项目进行恢复。极狐GitLab为GitLab的中文发行版,中文版本对中国用户更友好。可以一键私有化部署,也可以直接使用SaaS。详细安装指南可以查看官网https:......
  • 超详细 Git 教程:二十篇博客,三万字干货
    Git是最流行的版本管理工具,可以说是任何程序员都应该掌握的工具。当然,其他人也可以学习它用来进行版本控制为此,我将之前学习Git时的笔记整理了下(预计有二十篇),作为博客发出来,希望能帮到你。本文简单介绍下什么是版本控制,以及常见的版本控制工具在学习之前,希望读者有一点......