Git——本地使用详解

Git

1、开始版本控制

1.1、初始化Repository

新建一个目录,并使用git init命令初始化Repository:

mkdir mygit
git init

git init命令会在mygit目录中创建一个.git目录。

1.2、使目录脱离Git控制

Git的版控很单纯,全都是靠.git目录在做事。如果这个目录不想被版控,或者只想给客户不含版控记录的内容,只要把.git目录移除,Git就对这个目录失去控制权了。

2、把文件交给Git管控

2.1、创建文件后交给Git

创建一个内容为"hell, git"的文件,并命名为welcome.html:

echo "hello, git" > welcome.html

使用git status命令查看状态:
在这里插入图片描述

这个welcome.html文件当前的状态是Untracked files,即这个文件尚未被加到Git版控系统中,还未正式被Git“追踪”,只是刚刚加入这个目录而已。

使用git add命令,把welcome.html文件交给Git,让Git开始追踪它:

git add welcome.html

再次使用git status命令查看当前的状态:
在这里插入图片描述

从以上信息可以看出,文件状态已从Untracked变成new file。这表示该文件已经被安置到暂存区(Staging Area)。

2.2、git add之后再次修改文件

设想一下下面这样一种情境:

  1. 新增了一个文件abc.txt。
  2. 执行git add abc.txt命令,把文件加至暂存区。
  3. 编辑abc.txt文件。
echo "hello world" > abc.txt
git add abc.txt
echo "hw" > abc.txt

完成编辑后,可能想要进行Commit,把刚刚改动的内容保存下来。这是新手很容易犯的错误之一,以为执行Commit命令就能把所有的异动都保存下来,事实上这样的想法是不正确的。执行git status命令,看一下当前的状态:
在这里插入图片描述

可以发现,abc.txt文件变成了两个,步骤(2)的确把abc.txt文件加入暂存区了,但在步骤(3)中又编辑了该文件。对Git来说,编辑的内容并没有“再次被加入暂存区,所以此时暂存区中的数据还是步骤(2)中加进来的那个文件。

如果确定这个改动是你想要的,那就再次使用git add abc.txt命令,把abc.txt文件加入暂存区。

2.3、git add “–all"与”."参数区别

Git 1.x:

参数 新增文件 改动文件 删除文件
--all
.

Git 2.x:

参数 新增文件 改动文件 删除文件
--all
.

也就是说,在Git 2.x之后,这两个参数在功能上就没什么区别了。

2.4、把暂存区的内容提交到存储库里存档

如果仅是通过git add命令把异动加到暂存区,还不算是完成整个流程。如果想让暂存区的内容永久保存下来,就要使用git commit命令。

git commit -m "init commit"

在后面加上-m "init commit"是要说明“这次的Commit做了什么事”,只要使用简单、清楚的文本说明即可,中英文都可以,重点是要说清楚,能让自己和别人很快明白就行。

在这里插入图片描述

在执行git commit命令时,如果没有在后面加上信息参数,默认会弹出一个黑色的画面,也就是编辑器——Vim。让我们输入提交信息:

在这里插入图片描述

另外,如果没有内容,也可以Commit,只要加上--allow-empty参数。

git commit --allow-empty -m "empty commit"

3、工作区、暂存区与存储库

3.1、二段式提交

在Git中,针对工作目录、暂存区以及存储库3个主要区域,可以通过不同的Git命令,把文件移往不同的区域,如图所示:

在这里插入图片描述

3.2、跳过add直接commit

如果觉得先add再commit有点烦琐,可以在Commit时多加一个-a参数,缩短这个流程:

echo "ccc" > c.txt
git commit -a -m "quick commit test."

这样即使没有先add,也可以完成Commit。但要注意的是,这个-a参数只对已经存在于Repository区域的文件有效,对新加入(也就是Untracked files)的文件是无效的。

在这里插入图片描述

4、查看Commit记录

4.1、使用git log命令

git log

在这里插入图片描述

越新的信息会显示在越上面。从上面这段信息中大致可以看出以下内容:

  1. Commit的作者是谁
  2. 什么时候Commit的
  3. 每次的Commit大概做了些什么事

在使用git log命令时,如果加上额外参数,可以看到不一样的输出格式。例如,加上--oneline–-graph参数:

git log --oneline --graph

在这里插入图片描述

输出的结果就会更为精简,可以一次性看到更多的Commit。

4.2、查询历史记录常用条件

想要找某个人或某些人的Commit:

# 使用 --author参数
git log --oneline --author="ActonZhang"

# 使用 | 表示或者,注意使用时需要加上\进行转义
git log --oneline --author="ActonZhang\|Tom"

想要找Commit信息中是否包含有某些关键字:

# 使用 --grep 参数
git log --oneline --grep="second"

想要找Commit文件中的内容:

# 使用 -S 参数
git log -S "hw"

想要找某一段时间内的Commit:

# 使用 --since --until --after 参数
# 查询今天上午9点到下午11点之间的Commit
### 如何在 IntelliJ IDEA 中使用 Git #### 配置 Git 环境 为了能够在 IntelliJ IDEA 中顺利使用 Git,首先需要配置好环境。这涉及到指定 Git 可执行文件的位置。 通过菜单栏中的 `File` -> `Settings` (对于 macOS 用户则是 `IntelliJ IDEA` -> `Preferences`) 进入设置界面,在左侧列表中依次展开 `Version Control` 并选择 `Git` 选项卡[^3]。在这里输入本地安装的 Git Bash 路径下的 `git.exe` 文件位置,并点击 TEST 按钮验证是否能正常识别出 Git 版本号;如果显示出了具体的版本信息则表明配置无误。 #### 初始化 Git 仓库 当开发人员想要将现有的项目纳入版本控制之下时,可以通过两种方式来初始化一个新的 Git 库: - 方法一:右键单击项目的根目录,从弹出菜单里选取 `VCS` -> `Import into Version Control` -> `Create Git Repository...` 来启动向导程序; - 方法二:直接利用顶部工具条上的快捷按钮组合 `VCS` -> `Enable Version Control Integration...` 同样可以达到相同的效果。 一旦选择了上述任一种途径之后,按照提示操作即可完成整个过程——即在一个已有的 Idea 工程内部建立起对应的 .git 子文件夹作为工作区副本的一部分。 #### 基础命令介绍 除了图形化界面上的操作外,掌握一些基本的终端指令也是非常有帮助的。比如克隆远程仓库到本地的例子: ```bash $ git clone https://github.com/noobgod/designPattern.git ``` 这条语句会下载目标地址所指向的内容至当前所在路径下新建立起来的一个同名子目录内[^1]。而另一个例子展示了怎样获取由 cunyu1943 维护着的一系列 Java 编程实例资源库: ```bash $ git clone https://github.com/cunyu1943/java-programming-instance.git ``` 以上就是有关于如何在 IntelliJ IDEA 上面运用 Git 的概述以及部分具体实践指导[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值