git的基本操作一(如果有写个人项目或者团队协作开发,git是必不可缺的神器)

以下内容是基于我对git这个分布式项目管理工具的理解,如有不对,还请见谅。

本文会从实际出发,带大家沉浸式地使用git,从git仓库的创建到整个项目的版本控制。

git介绍

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

git安装

在linux上安装

这里以centos 7.9这个发行版本为例,直接在命令行窗口输入

$ yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel 
$ yum -y install git-core

将git安装,然后输入

git --version或者git

查看是否安装上,如图

当看到git的版本就说明已经安装上了。

在macOS上安装

直接在终端命令行中安装Xcode,Xocde附带有git工具。

然后依然输入

git --version

查看git的版本,如图所示

 

在windows上安装

直接访问git官网进行对应版本下载安装

git官网:https://git-scm.com/download/win

git工作区、暂存区、版本库、本地库、远程库的概念

如果你想顺利地使用git,首先必须得了解git工作区、暂存区、版本库、本地库和远程库的概念已经区别。

工作区

it 的工作区(Working Directory)是指你在电脑中能够看到的项目目录,也就是包含项目源代码、文件和子目录的地方。在工作区中,你可以修改文件、添加新文件,进行各种操作。

工作区中的文件可以分为以下三种状态:

  1. 已跟踪: 这些是已经纳入版本控制的文件,Git 会追踪它们的变化。已跟踪文件可以进一步分为:
    • 已修改: 表示文件已被修改,但还未添加到暂存区。
    • 已暂存: 表示已经将文件的修改添加到暂存区,准备提交到版本库。
  2. 未跟踪: 这些是未被 Git 管理的文件,Git 不会追踪它们的变化。这些文件可能是新添加的,Git 还不知道它们的存在。
  3. 已忽略: 这些是在项目中被设置为忽略的文件,通常包括编译产生的临时文件、日志文件等。Git 不会对这些文件进行版本控制。

在工作区中进行的修改,可以通过一系列 Git 命令进行追踪、暂存和提交,将这些修改记录到版本库中。理解工作区的概念有助于更好地理解 Git 的工作机制和版本控制过程。

暂存区

Git 的暂存区是介于工作区和版本库之间的一个临时存储区域。它是一个用于存放即将提交到版本库的修改的地方,允许你选择性地将工作区中的变更加入到提交中。

在使用 Git 进行版本控制的过程中,暂存区有以下几个关键作用:

  1. 选择性提交: 工作区中的所有修改并不会一次性全部提交到版本库,而是通过暂存区,你可以选择性地将部分修改暂存起来,然后一次性提交到版本库。
  2. 准备提交: 将文件的修改先添加到暂存区,相当于为这些修改做了一个快照,然后再通过提交操作将这些快照永久保存到版本库中。
  3. 清晰变更: 暂存区可以帮助你清晰地了解即将提交的内容,可以在提交前检查并修改暂存区中的内容,确保提交的内容符合预期。

版本库

Git 的版本库是存储项目完整历史记录的地方。版本库包含了项目所有的版本、分支、标签等信息。在版本库中,你可以回溯到任何一个过去的状态,查看项目的演变历程。

版本库分为三个主要部分:

  1. 工作区: 工作区是你在电脑中看到的项目目录,包含源代码文件、子目录等。在工作区中,你可以修改文件、添加新文件等。
  2. 索引: 暂存区是一个临时的区域,用于存放你已经通过 git add 命令暂存起来的改动。在执行 git commit 命令前,将需要提交的修改放入暂存区。
  3. HEAD: HEAD 是指向当前所在分支最后一次提交的指针。它是一个特殊的指针,指向当前被检出的本地分支的最新提交。

本地库

Git 的本地库指的是存储在本地计算机上的 Git 版本库,包含了项目的完整历史记录、分支、标签等信息。本地库是每个参与项目的开发者在自己的计算机上拥有的一个副本。

远程库

Git 的远程库是指存储在远程服务器上的 Git 仓库,用于协作开发和团队合作。远程库允许多个开发者共享和协同工作,使得项目的版本控制更加灵活和高效。常见的大型开源远程库如github、gitee等。其中github又被称为世界上最大的同性交友网站哦😁

git的使用

了解完git,就开始git的使用吧。

接下来我以Apple的macOS sonoma(因为本人用的是这个系统啦)这个系统版本为例来讲解git是如果使用的

在桌面上新建文件夹,并命名为git_test

在文件夹中,新建一个文本文件,在文本文件中写入“这是测试git的文本文件1”,并命名为git_demo1

在这个文件夹上打开终端

在终端中输入

git init

初始化这个git仓库,即将这个文件夹用git管理

此时,输入

git status

查看git仓库的状态,发现有一个main分支上有一个未被跟踪的文本文件git_demo1.txt

接下来将这个未被跟踪的文本文件添加到git的暂存区,使用

git add git_demo1.txt

命令(注意:add后面添加想要添加到暂存区的文件名。如果想要添加文件夹中全部文件输入git add .)。此时再查看git仓库的状态,发现文件已成为已跟踪的文件(文件名的颜色由红色变为绿色),即表示这个文件现在可以在git仓库中进行操作了!

确认这个文件无误后,将这个文件再提交到本地的版本库,输入

git commit -m "第一次提交"

-m后跟的是这次提交的备注,以后查看git的详细提交信息,可以看到每一次提交的备注。提示一个文件已经被改变,添加了一行。此时,再查看git仓库的状态,会发现仓库的main分支为空,没有可以跟踪的文件,即表明仓库的文件已全被跟踪。

这时我们已经把把文件提交到本地的版本库了,是不是很简单呀😎

等等,git可不止这些呢

现在我们在文件夹中新建第二个文本文件,命名为git_demo2

重复上述步骤,输入

git add git_demo2.txt
git commit -m "第二次提交"

将git_demo2.txt这个文件提交到版本库中。

好了,现在git的版本库中有两次文件的提交,输入

git log

查看历史提交记录。我们可以看到两次提交的详细信息,例如提交哈希、分支信息、作者信息、提交时间、提交消息等。这就是git的一大好处,每一次提交都有记录,有利于问题的追根溯源。

在git中,一个重要的功能是可以实现版本的回溯,下面我来演示一下。

要回溯到之前的版本,首先在要回溯的那个版本中找到提交哈希,并将其复制下来。然后输出

git reset --hard 085eb5196db3ee14337f5d0c5b4de11de5695e06

并输入git log ,会发现hard指针指向第一次提交的那个版本。文件夹中第二次提交的git_demo2.txt文本文件也不见了,完全回到了第一次提交时候的状态。

神奇吧,git很牛逼。如果在项目中改错了代码,想回到之前的版本,就用这个方法,项目立马恢复原样。

现在我们在文件夹中新建git_demo3.txt文本文件,并按照上述方法提交到暂存区,但这时假如这个文件有问题,想撤下暂存区,回到未被跟踪的状态。我们输入

git rm --cahed git_demo3.txt

即可将删除文件从暂存区删除。

这就是git的基本操作,git的操作还没有讲完,后面会更新几篇博客,将git讲完🤣

参考资料

git官网:https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git

菜鸟教程:https://www.runoob.com/git/git-tutorial.html

chatgpt3.5:https://chat.openai.com

评论

  1. *
    Android Chrome
    2 年前
    2024-1-08 19:26:07

    太牛啦!!!

  2. 33
    iPhone AppleWebKit
    2 年前
    2024-1-11 14:37:40

    好厉害

    • 博主
      33
      Macintosh Safari
      2 年前
      2024-1-12 17:06:00

      哈哈

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇