Yang's blog Yang's blog
首页
Java
密码学
机器学习
命令手册
关于
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

xiaoyang

编程爱好者
首页
Java
密码学
机器学习
命令手册
关于
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • System

    • HomeBrew介绍
  • Git

    • Git 命令入门指南
      • 初始化 Git 仓库
      • 添加和提交文件
      • 比较文件差异
      • 查看历史记录
      • 回滚更改
      • 管理远程仓库
      • 分支管理
      • 配置 Git
      • 使用标签
      • 结语
  • shell

    • shell编程中常用的符号
  • docker

    • Docker介绍
    • Dockerfile :构建自己的 Docker 镜像
    • Docker Compose :容器编排工具
  • Linux

    • Linux基础知识
    • Linux 文件系统
    • Linux 用户管理
    • Linux 权限与安全
    • Linux 网络管理
    • Linux 进程管理
    • Linux 常用命令
  • 命令手册
  • Git
xiaoyang
2024-05-07
目录

Git 命令入门指南推荐

# Git 命令入门指南

Git 是一款分布式版本控制系统,可以用于跟踪和管理软件开发项目的历史版本和变更。本文将介绍 Git 的基本操作,包括初始化仓库、添加、提交和比较文件、查看历史记录、回滚更改、管理远程仓库、分支管理、配置 Git 和使用标签等内容。

# 初始化 Git 仓库

使用 git init 命令在本地创建一个新的 Git 仓库:

git init
1

# 添加和提交文件

使用 git add 和 git commit 命令将文件添加到本地仓库:

git add 文件名
git commit -m "提交说明"
1
2

可以使用 git add . 命令将当前工作区的所有文件都加入暂存区。

# 比较文件差异

可以使用 git diff 命令比较文件在工作区、暂存区和历史版本之间的差异:

git diff 工作区文件名
git diff --cached 暂存区文件名
git diff 版本号 文件名
1
2
3

# 查看历史记录

使用 git log 命令查看提交历史记录:

git log
git log --oneline
git log --author=作者名
git log --grep=提交信息关键字
1
2
3
4

# 回滚更改

使用 git reset 命令回滚更改:

git reset HEAD^ # 回滚到上次提交
git reset HEAD^^ # 回滚到上上次提交
git reset --hard 版本号 # 回滚到指定版本
1
2
3

# 管理远程仓库

使用 git remote 命令管理远程仓库:

  1. 建立远程仓库连接
git remote add <name> 远程仓库地址  #name是远程主机名,自己命名一般为origin
git remote -v #查看远程仓库
git remote rm <name> #删除远程主机

1
2
3
4
  1. 从远程仓库拉取最新变更
  • 使用git pull方式
git pull <远程主机名> <远程分支名>:<本地分支名> #拉去远程分支并合并
git log -p  #查看修改内容
1
2
  • 使用git fetch+git merge
git fetch <远程主机名> <远程分支名> #拉去远程分支到本地仓库的远程跟踪分支中
git checkout <本地分支名> #切换到需要合并的本地分支
git diff ..<远程主机名>/<远程分支名>  #查看差异
git merge <远程主机名>/<远程分支名>  #合并分支
1
2
3
4
  1. 使用git push将本地仓库推送到远程仓库
git push  <远程主机名> <本地分支名>:<远程分支名>  #可以使用-f参数强制推送
1
  1. git fetch 和 git pull 区别

    当你执行git fetch命令时,Git会联系远程仓库,获取自上次你与远程仓库交互以来发生的所有更改。这些更改包括新的提交、分支和标签。Git将这些信息保存在你本地仓库的“远程跟踪分支”中,这些分支以refs/remotes/<remote-name>/<branch-name>的形式命名。

    虽然Git Fetch和Git Pull都是从远程仓库获取数据,但它们的行为有所不同。Git Pull不仅获取远程仓库的更改,还自动将这些更改合并到你的当前工作分支。这可能会导致冲突,特别是在多人同时修改同一部分代码时。相比之下,Git Fetch更加谨慎,它只获取数据而不进行任何修改,这给了你更多的控制权和选择权。

# 分支管理

使用 git branch 命令创建、删除和切换分支:

git branch 分支名 # 创建分支
git checkout 分支名 # 切换分支
git branch -D 分支名 # 删除分支
git branch -r  #查看远程分支
git branch -m 新分支名称  #修改当前分支名称
git branch -m 旧分支名称 新分支名称  #修改其他分支名称
1
2
3
4
5
6

使用 git merge 命令合并分支:

分支合并是将两个不同的分支合并成一个新的分支的操作。在 Git 中,分支合并通常用于将一个分支中的更改合并到另一个分支中,以便将多个代码版本合并为一个版本。

分支合并的基本流程如下:

  1. 切换到目标分支:git checkout <target-branch>
  2. 执行合并操作:git merge <source-branch>

其中,<target-branch> 是要合并到的目标分支,<source-branch> 是要被合并的源分支。

在执行合并操作时,Git 会找到两个分支之间的最近的共同祖先,然后将两个分支之间的所有更改应用到目标分支中。如果两个分支之间存在冲突,需要手动解决冲突后再进行提交。

例如,假设我们有一个名为 develop 的分支和一个名为 feature 的分支。要将 feature 分支中的更改合并到 develop 分支中,可以执行以下命令:

git checkout develop
git merge feature
1
2

上述命令会将 feature 分支中的更改合并到 develop 分支中,并生成一个新的合并提交记录。

需要注意的是,合并分支可能会导致代码冲突,因此在执行合并操作之前,最好先使用 git diff 命令查看两个分支之间的差异,以便确定哪些文件会被修改,以及如何处理冲突。同时,在合并分支之前,最好先将目标分支更新到最新的状态,可以使用 git pull 命令从远程仓库更新代码。

git merge 分支名
1

# 配置 Git

使用 git config 命令配置 Git:

git config --global user.name "用户名"
git config --global user.email "用户邮箱"
1
2

# 使用标签

使用 git tag 命令创建和查看标签:

git tag 标签名 # 创建标签
git tag # 查看所有标签
git show 标签名 # 查看标签详细信息
1
2
3

git tag 命令用于在 Git 仓库中打标签,标记某个特定的提交。标签通常用于标识代码版本、发布版本或者重要的里程碑。

Git 中有两种类型的标签:轻量标签(lightweight tag)和附注标签(annotated tag)。

  • 轻量标签是一个指向特定提交的引用,类似于分支,但是不会随着新的提交移动,也不会存储任何额外的信息。可以使用 git tag <tag-name> 命令创建轻量标签。

  • 附注标签是一个完整的 Git 对象,包含一个标签名、标签创建者、标签消息以及指向特定提交的引用。附注标签可以包含更多的信息,例如发布日期、版本号、变更日志等。可以使用 git tag -a <tag-name> -m <tag-message> 命令创建附注标签。

例如,要在 Git 仓库中打一个名为 v1.0 的附注标签,可以使用以下命令:

git tag -a v1.0 -m "Release version 1.0"
1

打完标签后,可以使用 git tag 命令查看所有标签。可以使用 git push --tags 命令将标签推送到远程仓库上,这样其他用户就可以看到标签并使用它们。

标签可以用于标识重要的版本发布或者里程碑,同时也可以方便地回到某个特定的提交或版本。

# 结语

本文介绍了 Git 的基本操作,包括初始化仓库、添加、提交和比较文件、查看历史记录、回滚更改、管理远程仓库、分支管理、配置 Git 和使用标签等内容。希望读者可以通过学习本文,掌握 Git 的基本使用方法,提高软件开发效率。

编辑 (opens new window)
#Git
上次更新: 2025/04/01, 01:48:12

← HomeBrew介绍 shell编程中常用的符号→

最近更新
01
操作系统
03-18
02
Nginx
03-17
03
后端服务端主动推送消息的常见方式
03-11
更多文章>
Theme by Vdoing | Copyright © 2023-2025 xiaoyang | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式