Git命令

Linux 基本命令

SSH 客户端
在 VMware 界面中操作虚拟机非常不友好,所以一般推荐使用专门的 SSH 客户端。市面上常见的有:

  • Xshell:个人免费,商业收费,之前爆出过有隐藏后门。不推荐
  • Finshell:基础功能免费,高级功能收费,基于 Java,内存占用较高(在 1 个 G 左右)。不推荐
  • MobarXterm:基础功能免费、高级功能收费。开源、功能强大、内存占用低(只有 10m 左右),但是界面不太漂亮。推荐使用
    (教程随便找个网上的配置就行了,注意不要使用校园网!!!我被坑了好久)

1.目录操作

1.1 切换目录

1
2
3
4
5
6
cd /xxx/xxx          #切换到指定目录
cd ~ #切换到当前用户的家目录
cd - #切换到上次访问的目录
cd . #当前目录
cd .. #切换到上级目录
cd / #切换到根目录

1.2 查看目录

1
2
3
4
ls                   #查看当前目录下的文件
ls -l #查看当前目录下的文件详细信息(等价于ll)
ls -a #查看当前目录下的所有文件(包括隐藏文件)
ls -lh #查看当前目录下的文件详细信息(包括文件大小)

1.3 创建目录

1
2
mkdir xxx            #创建一个目录
mkdir /xxx/xxx #创建一个目录

1.4 删除目录

1
2
3
rm /path/to/file          # 删除指定文件
rm -r /path/to/directory # 递归删除目录及其内容
rm -rf /path/to/directory # 递归强制删除目录及其内容

参数说明

  • -r(recursion):递归删除,用于删除目录及其内部所有文件和子目录。
  • -f(force):强制删除,忽略不存在的文件并且不显示任何提示。

1.5 移动和重命名

1
2
3
mv 当前目录名 新目录名        # 修改目录名,同样适用于文件操作
mv /usr/tmp/tool /opt # 将 /usr/tmp 目录下的 tool 目录剪切到 /opt 目录下面

2.文件操作

2.1 创建文件

1
touch 1.txt   # 在当前目录下创建1.txt

2.2 删除文件

1
2
rm 文件名              # 删除当前目录下的文件
rm -f 文件名 # 删除当前目录的的文件(不询问)

2.3 编辑文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

进入后,操作界面有三种模式:命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)

#### 命令模式
- 刚进入文件就是命令模式,通过方向键控制光标位置
- 使用命令 `dd` 删除当前整行
- 使用命令 `/字段` 进行查找
- 按 `i` 在光标所在字符前开始插入
- 按 `a` 在光标所在字符后开始插入
- 按 `o` 在光标所在行的下面另起一新行插入
- 按 `:` 进入底行模式
- 使用 `yy` 复制当前行
- 使用 `p(小写)` 在光标后粘贴
- 使用 `P(大写)` 在光标前粘贴

#### 插入模式
- 此时可以对文件内容进行编辑,左下角会显示 "-- 插入 --"
- 按 `ESC` 进入底行模式

#### 底行模式
- 退出编辑:`:q`
- 强制退出:`:q!`
- 保存并退出:`:wq`

示例

  • 启动 vi 编辑器:

    1
    vi filename.txt

    打开文件后,默认进入命令模式。

  • 从插入模式切换到命令模式:

    • i 进入插入模式。
    • 完成编辑后,按 ESC 返回命令模式。
  • 从底行模式切换到命令模式:

    • 在命令模式下,按 : 进入底行模式。
    • 输入命令(例如 :wq)后,按 Enter 返回命令模式。

2.4 查看文件

2.4.1. cat 命令

cat(concatenate)命令用于一次性显示整个文件内容,或者将多个文件连接起来输出。

1
2
cat filename.txt          # 显示文件内容
cat file1.txt file2.txt # 连接并显示多个文件的内容

2.4.2 less命令

1
less filename.txt    # 分页查看文件内容

Git 命令

1.获取本地仓库

进入目标目录后右键点击 Git Bash Here 运行命令

1
git init

成功之后可在文件夹下看到.git文件夹

2.基础操作指令

2.1 Git 的三个主要区域

在 Git 中,文件的修改会在不同的区域之间转换,这些区域主要包括工作区(Working Directory)、暂存区(Staging Area)和版本库(Repository)。理解这些区域的关系对于有效地使用 Git 至关重要。

  1. 工作区(Working Directory)
    • 描述:工作区是你在文件系统中实际看到和操作的项目目录。在这里,你可以编辑、添加、删除文件。
    • 状态:当你在工作区中对文件进行修改时,这些文件处于“已修改”(modified)状态。
  2. 暂存区(Staging Area)
    • 描述:暂存区是一个临时区域,用于存放即将提交到版本库的文件变更。
    • 状态:通过 git add 命令,你可以将工作区中已修改的文件添加到暂存区,这些文件此时处于“已暂存”(staged)状态。
  3. 版本库(Repository)
    • 描述:版本库是 Git 用来存储项目历史记录的地方。当你提交(commit)变更时,这些变更会被记录在版本库中。
    • 状态:通过 git commit 命令,暂存区中的文件变更会被提交到版本库,文件状态变为“已提交”(committed)。
1
2
3
git status   # 查看当前工作区和暂存区的状态
git add . # 将当前目录下的所有变更添加到暂存区
git commit -m "提交信息" # 将暂存区的变更提交到版本库,并添加提交信息

2.2 查看提交日志

作用:查看提交记录

命令形式git log [option]

常用选项

  • --all:显示所有分支
  • --pretty=oneline:将提交信息显示为一行
  • --abbrev-commit:使得输出的 commit ID 更简短
  • --graph:以图的形式显示

每次输入这些参数非常的麻烦,我们可以使用别名简化
打开gitbash,执行touch ~/.bashrc,然后在文件中添加如下内容:

1
2
3
4
#用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
#用于输出当前目录所有文件及基本信息
alias ll='ls -al'

关闭文件后让执行文件生效,执行source ~/.bashrc,然后执行git-log即可查看提交日志

2.3 版本回退

可以通过日志产看提交的版本号,然后使用git reset命令回退到指定版本
使用git reflog命令可以查看已经删除的提交记录

1
git reset --hard commitID    # 回退到指定版本

2.4 添加忽略文件

可以在项目根目录下创建.gitignore文件,然后在文件中添加需要忽略的文件或目录,这样提交时就不会提交这些文件
示例:

1
2
3
4
5
# 忽略所有.txt结尾的文件
*.txt
# 忽略1.doc文件
1.doc

3.分支操作

Git 的分支也非常轻量。它们只是简单地指向某个提交纪录 —— 仅此而已。所以许多 Git 爱好者传颂:
早建分支!多用分支!
这是因为即使创建再多的分支也不会造成储存或内存上的开销,并且按逻辑分解工作到不同的分支要比维护那些特别臃肿的分支简单多了。

在将分支和提交记录结合起来后,我们会看到两者如何协作。现在只要记住使用分支其实就相当于在说:“我想基于这个提交以及它所有的 parent 提交进行新的工作。”

3.1 创建分支

使用 git branch <分支名> 来创建一个新分支。

1
git branch main

3.2 切换分支

使用 git checkout <分支名> 来切换到指定分支。

1
git checkout main

使用 git checkout -b <分支名> 可以同时创建并切换到新分支。

1
git checkout -b master

3.3 合并分支

使用 git merge <分支名> 将指定分支合并到当前分支。
需要先切换到要合并到的分支,然后再执行合并操作。

1
2
# 假设当前在 main 分支上, 将 master 分支合并到 main 分支
git merge master

3.4 删除分支

使用 git branch -d <分支名> 删除本地分支。
注意: 不能删除当前所在的分支。

1
2
git branch -d b1 # 删除分支时,需要做各种检查
git branch -D b1 # 强制删除

4 操作远程仓库

4.1 创建远程仓库

githubgitee上创建一个新的仓库,在本地库中执行以下命令生成 SSH 公钥(文件路径为C:\Users\用户名\.ssh\id_rsa.pub):

1
ssh-keygen -t rsa

打开文件或者用命令cat ~/.ssh/id_rsa.pub查看公钥内容并将文件内容复制到远程仓库的 SSH 密钥中。

4.2 添加远程仓库

此操作是先初始化本地库,然后与已创建的远程库进行对接。

命令: git remote add <远端名称> <仓库路径>

远端名称,默认是 origin,取决于远端服务器设置。仓库路径,从远端服务器获取此 URL

例如:

1
git remote add origin git@github.com:kongshuilinhua/kongshuilinhua.github.io.git

4.3 查看远程仓库

命令:git remote

4.4 推送到远程仓库

git push [options] [远程仓库] [本地分支]:[远程分支]
如果远程分支名和本地分支名称相同,则可以只写本地分支。
git push 命令的可选参数包括:

  • -u--set-upstream:设置上游分支
  • --force-f:强制推送,即使会覆盖远程分支。
  • --all:推送所有本地分支。
  • --tags:推送所有本地标签。
  • --dry-run:模拟推送,不执行实际操作。
  • --delete:删除远程分支。
  • --mirror:推送所有引用(包括标签和远程分支)。
  • --atomic:确保所有分支一起推送成功,否则全部失败。
1
2
git push origin master
git push --set-upstream origin master
  • -f表示强制覆盖
  • --set-upstream表示推送到远端的同时并且建立起和远端分支的关联关系。
    如果当前分支已经和远端分支关联,则可以省略分支名和远端名。
1
git push  # 将master分支推送到已关联的远端分支

Git命令
https://kongshuilinhua.github.io/2024/12/26/Git命令/
作者
FireFLy
发布于
2024年12月26日
许可协议