git的使用记录

xuwenke
7
2025-04-21

在工作中,git是必不可少的技能之一。之前有过学习使用,但真正在项目中使用时总是漏洞百出。比如,在实习中,前几次提交代码时,不知git commit -amend 导致code reviewer提的修改丢失,算是长了记性。

特别总结一下git的使用。

1、git & github

  1. git是一个分布式的

Git - Downloading Package

Git 是一个分布式版本控制系统,最初由 Linux 之父 Linus Torvalds 开发,用于管理 Linux 内核代码。现在,它被广泛用于各种软件开发项目,尤其在多人协作和开源项目中非常流行。

Git 的特点

  • 分布式:每个开发者的本地仓库都是一个完整的代码仓库,不依赖于网络。

  • 快速高效:Git 操作如提交(commit)、切换分支(branch)都非常快。

  • 数据完整性高:所有数据都有校验机制,防止数据损坏。

  • 强大的分支管理:轻量、快速,支持多人协作开发。

Git 基本概念

概念

说明

仓库(Repository)

存储项目代码和历史记录的地方,可以是本地或远程

提交(Commit)

保存项目当前状态的快照

分支(Branch)

开发不同功能的线索,可以并行工作

合并(Merge)

把一个分支的修改合并到另一个分支

克隆(Clone)

下载一个远程仓库到本地

拉取(Pull)

获取远程仓库的更新并合并到本地

推送(Push)

把本地的提交上传到远程仓库

Git的常用命令

# 初始化一个本地仓库
git init

# 克隆远程仓库
git clone https://github.com/user/repo.git

# 查看当前状态
git status

# 添加修改到暂存区
git add filename

# 提交改动
git commit -m "说明信息"

# 查看提交记录
git log

# 创建新分支
git branch new-branch

# 切换分支
git checkout new-branch

# 合并分支
git merge branch-name

# 推送到远程仓库
git push origin branch-name

# 拉取远程更新
git pull origin branch-name

GitHub 是什么?

GitHub 是一个基于 Git 的在线代码托管平台,提供了协作开发的环境和工具。​

核心功能包括:

  • 远程仓库托管:​存储和管理 Git 仓库,支持公开和私有项目。

  • 协作工具:​如 Pull Request、Issue 跟踪、代码审查等,促进团队协作。

  • 集成服务:​与 CI/CD 工具、项目管理软件等集成,提升开发效率。

Git 与 GitHub 的关系

可以将 Git 比作本地的版本控制工具,而 GitHub 是基于 Git 的远程托管平台。​

开发者使用 Git 管理本地代码变更,然后通过 GitHub 实现以下操作:​

  • 推送(push):​将本地提交的更改上传到 GitHub 上的远程仓库。

  • 拉取(pull):​从 GitHub 上获取其他协作者的更新,合并到本地仓库。

  • 克隆(clone):​复制 GitHub 上的仓库到本地,开始开发。

2、创建一个项目

如图,github创建一个空的仓库learn-git .

本地git远程链接到该仓库:

git clone https://github.com/XuWink/learn-git.git

修改readme.md

git add .

git commit -m "第一次修改"

git push -u origin main

3、git的四种工作状态

使用 git status 可以查看git的当前工作状态

  • 未跟踪(Untracked)

    • 文件存在于工作区,但未被 Git 管理。

    • 使用 git add <file> 将其添加到暂存区,状态变为已暂存。​

  • 已修改(Modified)

    • 文件已被修改,但尚未添加到暂存区。

    • 使用 git add <file> 将其添加到暂存区,状态变为已暂存。

    • 使用 git restore <file> 可撤销修改,恢复到上次提交的状态。​

  • 已暂存(Staged)

    • 文件的修改已添加到暂存区,准备提交。

    • 使用 git commit -m "message" 提交更改,状态变为已提交。

    • 使用 git restore --staged <file> 可将文件从暂存区移除,状态变为已修改。​

  • 已提交(Committed)

    • 文件的修改已提交到本地仓库。

    • 使用 git push 将提交的更改推送到远程仓库

设置commit模板

在软件开发过程中,规范化的提交信息(commit messages)对于项目的可维护性和协作效率至关重要。Git 提供了配置 commit template 的功能,允许开发者预设一个模板,用于在提交代码时自动填充或提示提交信息

git config –global commit.template /path/to/template.txt

/path/to/template.txt改为自己的模板,模板内容可以为如下内容:

fix(<模块>): <描述>

#<具体描述>

#<问题单号>

# type 字段包含:
# feat:新功能(feature)
# fix:修补bug
# docs:文档(documentation)
# style: 格式(不影响代码运行的变动)
# refactor:重构(即不是新增功能,也不是修改bug的代码变动)
# test:增加测试
# chore:构建过程或辅助工具的变动
# scope:用于说明 commit 影响的范围,比如数据层、控制层、视图层等等。
# subject:是 commit 目的的简短描述,不超过50个字符
# Body:部分是对本次 commit 的详细描述,可以分成多行
# Footer:用来关闭 Issue或以BREAKING CHANGE开头,后面是对变动的描述、以及变动理由和迁移方法

然后再commit时,直接使用 git commit