git 的常用命令

GIT的使用

    • [一. 创建git本地仓库](#一. 创建git本地仓库)
      • [1. 配置仓库](#1. 配置仓库)
      • [2. 忽略某些文件的提交](#2. 忽略某些文件的提交)
      • [3. 添加文件并提交](#3. 添加文件并提交)
      • [4. 推送到远程仓库](#4. 推送到远程仓库)
    • [二. 常用的git指令](#二. 常用的git指令)
    • [1. 克隆项目](#1. 克隆项目)
      • [1. 克隆项目并初始化所有子模块](#1. 克隆项目并初始化所有子模块)
      • [2. 对已克隆的项目初始化子模块](#2. 对已克隆的项目初始化子模块)
      • [3. 其他实用命令和技巧](#3. 其他实用命令和技巧)
    • [2. 创建分支](#2. 创建分支)
      • [1. 仅创建新的分支](#1. 仅创建新的分支)
      • [2. 创建分支并立即切换到该分支](#2. 创建分支并立即切换到该分支)
    • [3. 切换分支](#3. 切换分支)
      • [1. 查看远程分支列表](#1. 查看远程分支列表)
      • [2. 切换分支](#2. 切换分支)
    • [4. 提交和推送到远程分支](#4. 提交和推送到远程分支)
      • [1. 查看远程主机名指令](#1. 查看远程主机名指令)
      • [2. 查看远程分支列表](#2. 查看远程分支列表)
      • [3. git push 推送](#3. git push 推送)
    • [5. merge 合并分支](#5. merge 合并分支)
    • [6. 撤销和回退](#6. 撤销和回退)
    • [7. git stash:临时保存工作进度](#7. git stash:临时保存工作进度)
    • [8. 查看git仓库的记录](#8. 查看git仓库的记录)
    • [9. 删除远程仓库](#9. 删除远程仓库)
    • [10. 重命名远程仓库](#10. 重命名远程仓库)

一. 创建git本地仓库

Git 使用 git init 命令来初始化一个 Git 仓库.

在文件夹中,

bash 复制代码
git init

执行后会在目录下生成一个隐藏的 .git 文件夹,这就表示仓库初始化成功。

1. 配置仓库

git 仓库的设置使用 git config 命令。

使用 git config --list 显示当前的Git全部配置信息:

bash 复制代码
$ git config --list
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
。。。

只编辑本仓库设置:

bash 复制代码
$ git config -e    # 针对当前仓库 

当你需要单独设置这个仓库的用户名和邮箱,可以使用配置仓库命令,单独编辑该仓库。

编辑全局Git设置,针对系统上所有仓库

bash 复制代码
$ git config -e --global   # 针对系统上所有仓库

也可以使用指令配置:

设置提交代码时的用户信息:

bash 复制代码
$ git config --global user.name "runoob"
$ git config --global user.email test@runoob.com

如果去掉 --global 参数只对当前仓库有效。

⭐️也可以在仓库中找到.git/config ,直接编辑.git/config 文档也是一样的效果。

2. 忽略某些文件的提交

在 Git 中,忽略某些文件,不提交 ,可以在git仓库中配置 .gitignore 文件来实现。

在项目的根目录下新建(或修改) .gitignore 文件,把不需要提交的文件路径或规则写进去。

例如,在 .gitignore 添加想要忽略的文件,在提交时,这些文件就会被忽略,不会被提交。

bash 复制代码
# 忽略编译生成的文件
**/*.o
**/*bin

# 忽略系统文件
.DS_Store
Thumbs.db
tags

# 忽略编译后的build内容
build/

3. 添加文件并提交

bash 复制代码
# 将文件添加到暂存区
git add README.md

# 添加当前目录下的所有文件到暂存区:
git add .

# 提交到本地仓库
git commit -m "填写本次提交的原因和仓库更新信息"

4. 推送到远程仓库

git push 命令用于从将本地的分支版本上传到远程并合并。

命令格式如下:

bash 复制代码
git push <远程主机名> <本地分支名>:<远程分支名>

如果本地分支名与远程分支名相同,则可以省略冒号:

bash 复制代码
git push <远程主机名> <本地分支名>

查看远程主机名指令

bash 复制代码
$ git remote
origin  #示例

查看远程分支列表

使用以下命令列出所有远程分支:

bash 复制代码
$ git branch -r
origin/HEAD -> origin/master
origin/master
origin/develop

查看所有本地和远程分支:

如果需要同时查看本地和远程分支,可以运行:

bash 复制代码
git branch -a

第一次推送新分支并建立跟踪关系

复制代码
git push -u origin main
  • -u--set-upstream:把本地 mainorigin/main 绑定,之后只需 git push 即可。

推送当前分支到远程同名分支

复制代码
git push
  • 前提是已经建立了跟踪关系(通常通过 git clone 或上面的 -u)。

二. 常用的git指令

git 的基本使用流程会涉及到四个部分:

  • workspace:工作区
  • staging area:暂存区/缓存区
  • local repository:版本库或本地仓库
  • remote repository:远程仓库

暂存区是一个临时存储区域,它包含了即将被提交到版本库中的文件快照,在提交之前,你可以选择性地将工作区中的修改添加到暂存区。

版本库包含项目的所有版本历史记录。每次提交都会在版本库中创建一个新的快照,这些快照是不可变的,确保了项目的完整历史记录。

工作区是当前编码使用的分支区,add指令后,我们更改的内容会保存到暂存区,之后 commit指令会提交到本地仓库中,使用push指令之后,会推送到远程仓库。

1. 克隆项目

1. 克隆项目并初始化所有子模块

bash 复制代码
git clone --recursive <主项目仓库地址>
# 或者使用更长的形式
git clone --recurse-submodules <主项目仓库地址>

此命令会克隆主仓库,并根据主仓库中记录的特定提交(通常是某次快照)来检出子模块特定版本的代码。

2. 对已克隆的项目初始化子模块

如果你之前已经用普通 git clone 命令克隆了主项目,此时子模块目录是空的,你需要额外执行命令来初始化和拉取子模块内容:

bash 复制代码
# 进入已经克隆的主项目根目录
cd <已克隆的主项目目录>
# 初始化并更新所有子模块(包括嵌套子模块)
git submodule update --init --recursive
  • --init:初始化子模块,将 .gitmodules 文件中定义的子模块信息注册到本地 Git 配置中。
  • --recursive:递归地处理所有嵌套的子模块(即子模块中可能包含的其他子模块)。

3. 其他实用命令和技巧

  • 显示进度 :如果子模块很多或很大,可以添加 --progress 参数查看克隆进度。

    bash 复制代码
    git submodule update --init --recursive --progress
  • 并行加速初始化 :使用 -j <n> 参数(例如 -j 4)可以并行处理多个子模块,以加快初始化速度。

    bash 复制代码
    git submodule update --init --recursive -j 4

2. 创建分支

1. 仅创建新的分支

创建一个新的分支,不切换过去。 git branch <分支名>

bash 复制代码
git branch new-feature  # 创建了一个名为 "new-feature" 的新分支

这个命令仅仅创建一个新的分支。执行后,你仍然会停留在当前工作的分支上,需要手动切换分支,才能开始在上面工作。

2. 创建分支并立即切换到该分支

有两种命令:

命令(现代推荐): git switch -c <分支名>

  • switch 是较新的命令,专用于切换分支,比 checkout 更直观。
  • -c--create 的缩写,表示创建新分支。

命令(传统方式): git checkout -b <分支名>

  • checkout 命令功能较多(既能切换分支又能恢复文件),容易混淆。
  • -b 表示创建新分支。

3. 切换分支

1. 查看远程分支列表

bash 复制代码
git fetch origin         # 首先确保获取远程仓库的最新信息:cite[4]
git branch -r            # 查看远程分支列表:cite[1]:cite[3]:cite[7]
git branch -a            # 查看所有分支(包括本地和远程):cite[3]:cite[7]

git branch -r 会列出所有远程分支(通常以 origin/ 开头),git branch -a 则会同时列出本地和远程分支。

2. 切换分支

获取到所有的分支后,有两种主要的切换方法。

方法特点 方法一:创建本地分支并跟踪远程分支 方法二:直接切换到远程分支(Detached HEAD)
适用场景 需要在该分支上进行持续开发和提交 临时查看 远程分支内容,不打算立即进行提交
命令 git checkout -b <本地分支名> origin/<远程分支名>git switch -c <本地分支名> --track origin/<远程分支名> git checkout origin/<远程分支名>
操作结果 在本地创建 一个新的分支,并自动与指定的远程分支建立跟踪关系(tracking) HEAD 指针 直接指向远程分支的最新提交,处于分离头指针(detached HEAD)状态
后续操作 在此分支的修改、提交可直接通过 git push 推送到对应的远程分支(无需指定分支名) 在此状态下的新提交不会属于任何分支 。若需保存修改,必须 创建新分支:git checkout -b <新分支名>

4. 提交和推送到远程分支

1. 查看远程主机名指令

bash 复制代码
$ git remote
origin  #示例

2. 查看远程分支列表

使用以下命令列出所有远程分支:

bash 复制代码
$ git branch -r
origin/HEAD -> origin/master
origin/master
origin/develop

查看所有本地和远程分支:

如果需要同时查看本地和远程分支,可以运行:

bash 复制代码
git branch -a

3. git push 推送

git push 命令用于从将本地的分支版本上传到远程并合并。

命令格式如下:

bash 复制代码
git push <远程主机名> <本地分支名>:<远程分支名>

如果本地分支名与远程分支名相同,则可以省略冒号:

bash 复制代码
git push <远程主机名> <本地分支名>

第一次推送新分支并建立跟踪关系

复制代码
git push -u origin main
  • -u--set-upstream:把本地 mainorigin/main 绑定,之后只需 git push 即可。

推送当前分支到远程同名分支

复制代码
git push
  • 前提是已经建立了跟踪关系(通常通过 git clone 或上面的 -u)。

5. merge 合并分支

将其他分支合并到当前分支:

bash 复制代码
git merge <branchname>

例如,切换到 main 分支并合并 feature-xyz 分支:

bash 复制代码
git checkout main
git merge feature-xyz

6. 撤销和回退

  • 撤销工作区的修改:
bash 复制代码
git checkout -- file.txt
  • 取消暂存区的文件:
bash 复制代码
git reset HEAD file.txt
  • 回退到某个提交(保留修改):
bash 复制代码
git reset --soft <commit-id>
  • 回退到某个提交(丢弃修改):
bash 复制代码
git reset --hard <commit-id>

7. git stash:临时保存工作进度

git stash 命令允许你临时保存当前工作目录的更改,以便你可以切换到其他分支或处理其他任务。

  • 保存当前工作进度:先把目前的修改保存起来
bash 复制代码
git stash
  • 查看存储的进度:查看当前保存的记录情况
bash 复制代码
git stash list
  • 应用最近一次存储的进度:
bash 复制代码
git stash apply
  • 应用并删除最近一次存储的进度
bash 复制代码
git stash pop
  • 删除特定存储
bash 复制代码
git stash drop stash@{n}
  • 清空所有存储
bash 复制代码
git stash clear

8. 查看git仓库的记录

  • 查看仓库状态:

    bash 复制代码
    git status
  • 查看提交历史:

    bash 复制代码
    git log

9. 删除远程仓库

bash 复制代码
git remote remove <远程名>

例如:

bash 复制代码
git remote remove origin

10. 重命名远程仓库

bash 复制代码
git remote rename <旧名字> <新名字>

例如:

bash 复制代码
git remote rename origin upstream
相关推荐
一点一木4 小时前
🚀 2025 年 09 月 GitHub 十大热门项目排行榜 🔥
前端·人工智能·github
xhload3d5 小时前
智慧停车场合集 | 图扑数字孪生静态交通一网统管
物联网·3d·智慧城市·html5·webgl·数字孪生·可视化·工业互联网·三维建模·智慧停车·智慧交通·轻量化·电力能源·智慧停车场·智慧停车楼
逛逛GitHub6 小时前
推荐 7 个本周 yyds 的 GitHub 项目。
github
老坛程序员6 小时前
Mosquitto:MQTT Broker入门与分布式部署最佳实践
分布式·物联网·网络协议·iot
L X..6 小时前
Git 无法访问 GitHub(Recv failure: Connection was reset)问题解决教程
git·github
仰泳之鹅6 小时前
【杂谈】怎么使用VsCode提交github
ide·vscode·github
啵啵鱼爱吃小猫咪8 小时前
github克隆别人的项目并创建环境安装子模块
github
jianqiang.xue9 小时前
ESP32-S3入门第七天:UART串口通信与设备交互
c语言·单片机·嵌入式硬件·mcu·物联网·51单片机
请数据别和我作队10 小时前
视频字幕提取工具 ——Video-subtitle-extractor
经验分享·开源·github·字幕提取·vse