Skip to content
xiaoyang 的头像xiaoyang发布于 2024-05-073,013 字阅读约 10 分钟浏览加载中

Git 命令入门指南 ​

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

初始化 Git 仓库 ​

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

sh
git init

添加和提交文件 ​

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

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

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

比较文件差异 ​

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

sh
git diff 工作区文件名
git diff --cached 暂存区文件名
git diff 版本号 文件名

查看历史记录 ​

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

sh
git log
git log --oneline
git log --author=作者名
git log --grep=提交信息关键字

回滚更改 ​

使用 git reset 命令回滚更改:

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

管理远程仓库 ​

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

  1. 建立远程仓库连接
sh
git remote add <name> 远程仓库地址  #name是远程主机名,自己命名一般为origin
git remote -v #查看远程仓库
git remote rm <name> #删除远程主机
  1. 从远程仓库拉取最新变更
  • 使用git pull方式
sh
git pull <远程主机名> <远程分支名>:<本地分支名> #拉去远程分支并合并
git log -p  #查看修改内容
  • 使用git fetch+git merge
sh
git fetch <远程主机名> <远程分支名> #拉去远程分支到本地仓库的远程跟踪分支中
git checkout <本地分支名> #切换到需要合并的本地分支
git diff ..<远程主机名>/<远程分支名>  #查看差异
git merge <远程主机名>/<远程分支名>  #合并分支
  1. 使用git push将本地仓库推送到远程仓库
sh
git push  <远程主机名> <本地分支名>:<远程分支名>  #可以使用-f参数强制推送
  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 命令创建、删除和切换分支:

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

使用 git merge 命令合并分支:

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

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

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

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

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

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

sh
git checkout develop
git merge feature

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

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

sh
git merge 分支名

配置 Git ​

使用 git config 命令配置 Git:

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

使用标签 ​

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

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

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

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

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

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

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

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

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

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

结语 ​

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

DISCUSSION

评论区

欢迎分享你的思考、补充或问题。

基于 VitePress 搭建