【工具】Git 操作大全

文章目录

    • [1. Git 基础操作](#1. Git 基础操作)
      • [1.1 初始化 Git 仓库](#1.1 初始化 Git 仓库)
      • [1.2 克隆现有仓库](#1.2 克隆现有仓库)
      • [1.3 配置 Git 用户信息](#1.3 配置 Git 用户信息)
      • [1.4 查看 Git 配置信息](#1.4 查看 Git 配置信息)
    • [2. 文件操作](#2. 文件操作)
      • [2.1 查看文件状态](#2.1 查看文件状态)
      • [2.2 添加文件到暂存区](#2.2 添加文件到暂存区)
      • [2.3 提交文件到本地仓库](#2.3 提交文件到本地仓库)
      • [2.4 查看提交历史](#2.4 查看提交历史)
      • [2.5 回退到上一个提交](#2.5 回退到上一个提交)
    • [3. 分支操作](#3. 分支操作)
      • [3.1 创建新分支](#3.1 创建新分支)
      • [3.2 切换分支](#3.2 切换分支)
      • [3.3 查看所有分支](#3.3 查看所有分支)
      • [3.4 删除本地分支](#3.4 删除本地分支)
      • [3.5 合并分支](#3.5 合并分支)
      • [3.6 解决合并冲突](#3.6 解决合并冲突)
    • [4. 远程操作](#4. 远程操作)
      • [4.1 添加远程仓库](#4.1 添加远程仓库)
      • [4.2 查看远程仓库信息](#4.2 查看远程仓库信息)
      • [4.3 拉取远程仓库更新](#4.3 拉取远程仓库更新)
      • [4.4 推送代码到远程仓库](#4.4 推送代码到远程仓库)
      • [4.5 删除远程分支](#4.5 删除远程分支)
      • [4.6 拉取并合并远程分支](#4.6 拉取并合并远程分支)
    • [5. 标签操作](#5. 标签操作)
      • [5.1 创建标签](#5.1 创建标签)
      • [5.2 查看标签](#5.2 查看标签)
      • [5.3 推送标签到远程仓库](#5.3 推送标签到远程仓库)
      • [5.4 删除标签](#5.4 删除标签)
    • [6. Git 流程与工作流](#6. Git 流程与工作流)
      • [6.1 使用 Git Flow 工作流](#6.1 使用 Git Flow 工作流)
      • [6.2 基本的 Git Flow 操作](#6.2 基本的 Git Flow 操作)
    • [7. 进阶操作](#7. 进阶操作)
      • [7.1 使用 Git Rebase](#7.1 使用 Git Rebase)
      • [7.2 Git Stash](#7.2 Git Stash)
      • [7.3 检查文件的修改记录](#7.3 检查文件的修改记录)
    • [8. Git 常见问题与解决](#8. Git 常见问题与解决)
      • [8.1 如何取消未提交的更改?](#8.1 如何取消未提交的更改?)
      • [8.2 如何强制推送?](#8.2 如何强制推送?)
      • [8.3 如何重命名本地分支?](#8.3 如何重命名本地分支?)

1. Git 基础操作

1.1 初始化 Git 仓库

在一个空目录中初始化一个新的 Git 仓库:

bash 复制代码
git init

1.2 克隆现有仓库

复制一个已经存在的远程仓库

bash 复制代码
git clone https://github.com/yourusername/yourrepository.git

1.3 配置 Git 用户信息

在本地使用 Git 前,需要配置用户名和邮箱,这将与提交记录关联:

bash 复制代码
git config --global user.name "Your Name"
git config --global user.email "[email protected]"

1.4 查看 Git 配置信息

要查看当前的 Git 配置信息,可以使用以下命令:

bash 复制代码
git config --list

2. 文件操作

2.1 查看文件状态

查看工作区和暂存区的文件状态:

bash 复制代码
git status

2.2 添加文件到暂存区

将修改后的文件添加到 Git 暂存区:

bash 复制代码
git add <file_name>

要添加所有修改过的文件,可以使用:

bash 复制代码
git add .

2.3 提交文件到本地仓库

提交文件时,需要写明提交信息,描述这次提交的更改:

bash 复制代码
git commit -m "Commit message"

2.4 查看提交历史

查看提交历史记录:

bash 复制代码
git log

使用 --oneline 可以简化显示:

bash 复制代码
git log --oneline

2.5 回退到上一个提交

如果想撤销上一次的提交,并将文件恢复到暂存区:

bash 复制代码
git reset --soft HEAD~1

如果想彻底撤销上一次的提交并恢复工作区文件:

bash 复制代码
git reset --hard HEAD~1

3. 分支操作

3.1 创建新分支

创建一个新分支并切换到该分支:

bash 复制代码
git checkout -b new-branch

3.2 切换分支

切换到已有的分支:

bash 复制代码
git checkout branch-name

3.3 查看所有分支

查看当前仓库的所有分支:

bash 复制代码
git branch

3.4 删除本地分支

删除本地分支:

bash 复制代码
git branch -d branch-name

如果分支尚未合并,你可以强制删除:

bash 复制代码
git branch -D branch-name

3.5 合并分支

将指定分支的内容合并到当前分支:

bash 复制代码
git merge branch-name

3.6 解决合并冲突

合并时可能会遇到冲突,Git 会标记冲突的文件,你需要手动编辑文件解决冲突,编辑后使用:

bash 复制代码
git add conflicted-file
git commit -m "Resolve merge conflict"

4. 远程操作

4.1 添加远程仓库

将远程仓库与本地仓库关联:

bash 复制代码
git remote add origin https://github.com/yourusername/yourrepository.git

4.2 查看远程仓库信息

查看当前配置的远程仓库信息:

bash 复制代码
git remote -v

4.3 拉取远程仓库更新

从远程仓库拉取最新代码,并自动合并:

bash 复制代码
git pull origin branch-name

4.4 推送代码到远程仓库

将本地的更改推送到远程仓库:

bash 复制代码
git push origin branch-name

4.5 删除远程分支

删除远程仓库中的分支:

bash 复制代码
git push origin --delete branch-name

4.6 拉取并合并远程分支

如果你要拉取并合并远程分支到当前分支:

bash 复制代码
git fetch origin
git merge origin/branch-name

5. 标签操作

5.1 创建标签

创建一个新的标签(例如:v1.0):

bash 复制代码
git tag v1.0

5.2 查看标签

查看所有标签:

bash 复制代码
git tag

5.3 推送标签到远程仓库

将本地标签推送到远程仓库:

bash 复制代码
git push origin v1.0

5.4 删除标签

删除本地标签:

bash 复制代码
git tag -d v1.0

删除远程标签:

bash 复制代码
git push origin --delete tag v1.0

6. Git 流程与工作流

6.1 使用 Git Flow 工作流

Git Flow 是一种常见的 Git 分支管理工作流,分为以下几种分支类型:

  • master:稳定版,始终可部署。
  • develop:开发版,包含即将发布的功能。
  • feature/:功能开发分支。
  • release/:发布分支,准备生产环境部署。
  • hotfix/:修复分支,用于生产环境问题的修复。

6.2 基本的 Git Flow 操作

初始化 Git Flow(只需执行一次):

bash 复制代码
git flow init

开始新功能开发:

bash 复制代码
git flow feature start new-feature

结束功能开发并合并到 develop

bash 复制代码
git flow feature finish new-feature

创建发布分支:

bash 复制代码
git flow release start 1.0

发布并合并到 masterdevelop

bash 复制代码
git flow release finish 1.0

修复生产环境 bug:

bash 复制代码
git flow hotfix start fix-bug

结束并合并到 masterdevelop

bash 复制代码
git flow hotfix finish fix-bug

7. 进阶操作

7.1 使用 Git Rebase

rebase 可以将分支的修改历史重新应用在另一个分支上,常用于保持项目历史记录的整洁。

bash 复制代码
git rebase master

7.2 Git Stash

git stash 可以暂存当前工作区的更改,以便切换到其他分支而不丢失修改:

bash 复制代码
git stash

恢复暂存的更改:

bash 复制代码
git stash pop

7.3 检查文件的修改记录

查看文件的修改历史:

bash 复制代码
git log -- <file_name>

查看文件的每次修改:

bash 复制代码
git blame <file_name>

8. Git 常见问题与解决

8.1 如何取消未提交的更改?

如果你在工作区修改了文件,但还没有提交,可以使用以下命令取消修改:

bash 复制代码
git checkout -- <file_name>

8.2 如何强制推送?

如果你需要强制推送本地分支到远程仓库(如覆盖远程分支),可以使用:

bash 复制代码
git push -f origin branch-name

8.3 如何重命名本地分支?

如果你想重命名当前分支,可以使用:

bash 复制代码
git branch -m new-branch-name

如果想重命名其他分支:

bash 复制代码
git branch -m old-branch-name new-branch-name
相关推荐
bulucc10 分钟前
回归,git 分支开发操作命令
大数据·git·elasticsearch
岳轩子2 小时前
git更新的bug
git·bug
born-stubborn4 小时前
Git 的基本概念和使用方式
git
offerwa4 小时前
Git版本控制实战:从入门到进阶
git
小杨4045 小时前
springboot框架项目实践应用二十一(git实战)
spring boot·git·后端
chat2tomorrow6 小时前
如何构建类似云数据仓库 Snowflake 的本地数据仓库?
大数据·数据仓库·低代码·数据治理·snowflake·sql2api
doglc6 小时前
从零手写RPC-version0
java·git·rpc·maven·intellij idea
尽兴-7 小时前
常用 Git 命令详解
java·git·vscode·gitee
Yang-Never8 小时前
Git -> git merge --no-ff 和 git merge的区别
git
终生成长者9 小时前
git rebase的使用
git