Git代码管理工具 — 3 Git基本操作指令详解

目录

[1 获取本地仓库](#1 获取本地仓库)

[2 基础操作指令](#2 基础操作指令)

[2.1 基础操作指令框架](#2.1 基础操作指令框架)

[2.2 git status查看修改的状态](#2.2 git status查看修改的状态)

[2.3 git add添加工作区到暂存区](#2.3 git add添加工作区到暂存区)

[2.4 提交暂存区到本地仓库](#2.4 提交暂存区到本地仓库)

[2.5 git log查看提交日志](#2.5 git log查看提交日志)

[2.6 git reflog查看已经删除的记录](#2.6 git reflog查看已经删除的记录)

[2.7 git reset版本回退](#2.7 git reset版本回退)

[2.8 添加文件至忽略列表](#2.8 添加文件至忽略列表)


1 获取本地仓库

要使用Git进行代码的版本控制,确实需要首先获取或创建一个本地仓库,步骤如下:

1)创建本地仓库目录 :在电脑创建一个新的文件夹,例如命名为git_``test,这个文件夹将作为你的本地Git仓库。

2)打开Git Bash:进入这个新创建的目录后,可以通过右键点击文件夹空白处,选择"Git Bash Here"来打开Git Bash窗口。右键菜单中在上一节安装中有默认安装此选项。

3)初始化Git仓库 :在Git Bash窗口中,输入命令git initgit init命令会初始化一个新的Git仓库,创建必要的Git文件和目录结构。

4)检查.git目录 :执行git init命令后,Git会在当前目录下创建一个名为.git的隐藏目录。这个目录包含了Git仓库的所有元数据,例如提交历史、分支信息等。

2 基础操作指令

2.1 基础操作指令框架

Git工作目录下对于文件的修改(增加、删除、更新)会存在几个状态,这些修改的状态会随着我们执行Git的命令而发生变化。

参考黑马程序员教程

2.2 git status查看修改的状态

git status 是一个非常有用的Git命令,它用于显示当前Git仓库的状态。下面是git status命令的一些常见输出示例:

  • 未跟踪的文件:显示当前目录下未被Git跟踪的新文件。

    Untracked files: (use "git add <file>..." to include in what will be committed) newfile.txt

  • 已修改的文件:显示已经被Git跟踪但自上次提交以来有修改的文件。

    Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: existingfile.txt

  • 已暂存的文件:显示已经被添加到暂存区,准备下一次提交的文件。

    Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: newfile.txt modified: existingfile.txt

首先通过touch创建一个文件,新创建的文件应该是未跟踪的文件:

2.3 git add添加工作区到暂存区

git add 是一个用于将更改添加到Git的暂存区的命令。暂存区是Git中的一个临时区域。以下是一些常用的 git add 命令用法:

  • 添加单个或多个文件

git add file1.txt file2.txt

  • 添加所有更改. 表示当前目录下的所有文件,而 -A 表示所有更改,包括删除的文件。

git add .

或者

git add -A

  • 添加修改过的文件和新文件:这将只添加修改过的文件和被删除的文件到暂存区,但不包括新文件。

git add -u

  • 使用通配符添加文件 :这将添加当前目录下所有以 .txt 结尾的文件到暂存区。

git add *.txt

将上面添加的文件暂存到缓冲区中,添加后的文件应该是已暂存的文件:

2.4 提交暂存区到本地仓库

当使用 git add 将更改添加到暂存区后,就可以使用 git commit 来保存这些更改到本地仓库的历史记录中。以下是一些基本的 git commit 命令用法:

  • 提交暂存区的更改

git commit -m "Your commit message"

-m 选项后面跟着的是提交信息,自定义的描述。如果你不使用 -m 选项,Git 会打开默认的文本编辑器让你输入提交信息:

  • 提交所有更改(包括未跟踪的文件)-a 选项会将所有已跟踪的文件的更改和新文件添加到暂存区,然后执行提交。注意,这不会包括已经被删除的文件。

git commit -a -m "Your commit message"

  • 修改最后一次提交--amend 选项允许你修改最后一次提交的信息或添加额外的更改。如果你需要修改最后一次提交,可以使用:

git commit --amend -m "Your new commit message"

  • 使用交互式暂存: 如果你想要对暂存区的更改进行更细致的控制,这将允许你选择哪些更改包含在提交中:

git commit -i

  • 使用Git的图形用户界面提交: 如果你更喜欢使用图形界面,可以使用:

git gui commit

将上面缓存区的文件添加到代码仓库,并添加文件的描述信息:

2.5 git log查看提交日志

git log 是一个用于查看Git仓库提交历史的命令。它可以显示从最近到最旧的提交记录,包括提交的作者、日期、提交信息等。以下是一些常用的 git log 选项:

  • 查看所有提交记录(常用)

git log

  • 查看指定数量的提交 :这里的 -n 选项后面跟着数字,表示你想要查看的提交记录的数量。

git log -n 5

  • 查看提交的统计信息:将显示每个提交的文件更改统计,包括哪些文件被修改、添加或删除,以及行的更改数量。

git log --stat

  • 查看每次提交的内容差异-p 选项会显示每个提交的差异(即补丁),让你可以看到具体的代码更改。

git log -p

  • 查看图形化的提交历史:这将以图形化的方式展示分支和合并的历史。

git log --graph

  • 查看某个特定文件或目录的提交历史

git log -- path/to/file_or_directory

  • 查看某个作者的提交

git log --author="author name"

  • 查看最近的一次提交

git log -1

查看代码仓库中的文件修改日志信息:

使用git log --graph 进行图形化的显示。

2.6 git reflog查看已经删除的记录

git reflog 命令可以查看最近的Git引用操作记录,每条记录对应一个唯一的引用ID,显示了对引用的改变以及对应的提交ID。可以帮助你找回意外删除或重置的提交,从而恢复代码状态或查看历史操作记录。

使用 git reflog 的一些场景:

  • 找回丢失的提交 :如果你执行了 git reset --hard 并且后悔了,你可以使用 git reflog 找到丢失的提交的哈希值,然后使用 git reset --hard <commit-hash> 来恢复。

  • 理解HEAD的移动 :如果你不确定HEAD是如何到达当前位置的,reflog 可以给你一个详细的历史记录。

  • 恢复分支状态 :如果你不小心删除了一个分支,reflog 可以帮助你找到分支的最后状态,并恢复它。

2.7 git reset版本回退

git reset可以用来撤销提交、修改暂存区中的文件、重置分支指针等。以下是一些常见的 git reset 用法:

  • 重置暂存区,但不更改工作目录 :不带任何参数的 git reset 命令会将暂存区中的所有更改重置为最后一次提交的状态,但不会影响工作目录中的文件。<commit>为移动HEAD和当前分支到指定的提交,可以使用 git log(git-log)git reflog 指令查看

git reset

git reset <commit>

  • 重置暂存区,同时更新工作目录 :使用 --hard 选项会将暂存区和工作目录都重置为最后一次提交的状态。这会丢失所有未提交的更改。

git reset --hard

git reset --hard <commit>

  • 重置暂存区,但不更新工作目录(只保留更改) :使用 --soft 选项会将暂存区重置为最后一次提交的状态,但保留工作目录中的更改,这样你可以重新暂存这些更改并提交。

git reset --soft

git reset --soft <commit>

使用git reset --hard <commit>命令回退到指定版本。

但是如果操作失误,想取消怎么办?

  • 第一种:如果没回退之前第一条的<commit>还在命令行中,任然可通过git reset --hard <commit>回退。
  • 第二种:如果commit已经在命令行中已经清除,可通过git reflog查看之前的操作状态<commit>,然后使用git reset --hard <commit>回退。

2.8 添加文件至忽略列表

一般我们总会有些文件无需纳入Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以在工作目录中创建一个名为 .gitignore 的文件(文件名称固定),列出要忽略的文件模式。下面是一个示例:

相关推荐
但老师3 小时前
Git遇到“fatal: bad object refs/heads/master - 副本”问题的解决办法
git
秃头女孩y3 小时前
git创建分支
git
研究是为了理解8 小时前
Git Bash 常用命令
git·elasticsearch·bash
DKPT9 小时前
Git 的基本概念和使用方式
git
Winston Wood12 小时前
一文了解git TAG
git·版本控制
喵喵先森12 小时前
Git 的基本概念和使用方式
git·源代码管理
xianwu54314 小时前
反向代理模块
linux·开发语言·网络·git
binishuaio16 小时前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
会发光的猪。17 小时前
如何在vscode中安装git详细新手教程
前端·ide·git·vscode
stewie618 小时前
在IDEA中使用Git
java·git