当前位置:首页 > 技术 > 正文内容

Git基础入门与实用指南

访客 技术 2026年9月30日 7

目录

注意:必读

为何选择Git?

常用Git指令

  1. Git简介

  2. Git安装指南

2.1 Windows系统

2.2 macOS系统

2.3 Linux系统

  1. Git初始设置

3.1 查看当前配置

  1. 仓库创建与维护

4.2 文件加入仓库

  1. 新建或添加文件

  2. 加入暂存区

  3. 检查状态

4.3 提交变更

  1. 本地提交

  2. 分支操作

5.1 新建分支

5.2 切换分支

5.3 查看分支

  1. 分支合并

  2. 切换至目标分支,例如 master

  3. 合并其他分支

  4. 冲突处理要点:不可避免

  5. 手动修复冲突

  6. 典型合并冲突示例与解决办法

  7. Git冲突解决图形工具推荐

  8. 避免在Git合并冲突中丢失代码

  9. 解决冲突后如何保证代码质量

  10. 查看历史记录

  11. 远程仓库操作

9.1 添加远程仓库

9.2 推送更改

9.3 拉取更新

总结

工具使用

GitHub Desktop

GitKraken

SourceTree

Visual Studio Code

对新手而言,哪个工具更友好?

这些工具是否支持多平台?

Git Extensions安装与中文配置

前沿技术

Git hooks

Git submodule

请点赞、关注并收藏这篇文章


注意:必读

安装前请先注册Gitee账号,有些朋友可能会问:不是应该注册GitHub吗?如果有条件当然可以选择,但需要科学上网,代理问题自行研究,我没有使用过,不了解具体情况。对于初学者,建议先使用GitLab或Gitee。


为何使用Git?

Git是最广泛采用的分布式版本控制系统之一。在分布式系统中,不存在集中式的服务器来存放所有代码。每个开发者都拥有自己的本地仓库,包含完整的项目历史。开发者可以自由地在本地修改代码,再将更改同步到其他仓库或从其他仓库获取更改。这种架构提供了极高的灵活性和可靠性,即使离线也能继续工作。

仓库(Repository):存放项目文件及所有历史记录和版本信息的地方。

工作区(Working Directory):当前检出的项目文件夹,可在此编辑文件。

暂存区(Staging Area):临时区域,用于存放即将提交的更改。

提交(Commit):将更改保存到仓库,每次提交都是一个快照。

分支(Branch):允许多个开发路径并行工作,各分支可独立更改。

合并(Merge):将一个分支的更改整合到另一个分支。

冲突(Conflict):当两个分支修改了同一文件的相同部分时,合并时会产生冲突。


常用Git指令

git init:新建Git仓库。

git clone [url]:克隆远程仓库到本地。

git add [file]:添加文件到暂存区。

git commit -m "message":提交暂存区更改并附带说明。

git status:查看工作区和暂存区状态。

git push [remote] [branch]:推送本地分支更新到远程仓库。

git pull [remote] [branch]:从远程仓库拉取更新并合并到本地。

git branch:列出、创建或删除分支。

git checkout [branch]:切换分支。

git merge [branch]:将指定分支合并到当前分支。

git log:查看提交历史。

1. Git简介

Git是一款分布式版本控制系统,专门用于高效管理从小到大的各类项目版本。它能协助团队协作、追踪项目变化并简化开发流程。

2. Git安装指南

不同操作系统安装方式如下:

2.1 Windows系统

  1. 下载Git:
    • 访问 Git官网。
    • 下载适用于Windows的安装包。
  1. 安装Git:
    • 双击下载的安装包。
    • 按提示操作,保持默认选项即可。
  1. 配置环境变量:
    • 确保安装过程中将Git加入系统环境变量。
  1. 验证安装:
    • 打开命令提示符(cmd)或PowerShell,输入:
    • git --version
    • 若成功安装,会显示Git版本信息。

2.2 macOS系统

  1. 使用Homebrew安装:
    • 打开终端,输入:
    • brew install git
  1. 验证安装:
    • 输入命令查看版本:
    • git --version
  1. 通过Xcode安装:
    • 可通过安装Xcode Command Line Tools安装Git,输入:
    • xcode-select --install

2.3 Linux系统

  • Debian或Ubuntu用户,在终端输入:
    • sudo apt update
    • sudo apt install git
  • Fedora用户使用:
    • sudo dnf install git
  • Arch Linux用户运行:
    • sudo pacman -S git
  • 验证安装:
    • git --version

3. Git初始设置

安装完成后,基础配置如下:

  1. 设置用户名和邮箱:
git config --global user.name "你的Gitee/GitHub用户名"
git config --global user.email "你的邮箱"
ssh-keygen -t rsa -C "你的Gitee邮箱" 生成密钥
Gitee/GitHub上添加公钥
ssh -T xxxxx@xxxx.com 验证密钥

使用HTTPS协议克隆仓库:

git clone https://gitee.com/用户名/仓库名.git

使用SSH协议克隆仓库:

git clone git@gitee.com:用户名/仓库名.git

测试克隆(如克隆名为tom的用户仓库):

git clone xxxxx@xxxxxxx.com:tom/tomcangku.git

git@github.com 是GitHub通用地址,类似地 git@gitee.com 是Gitee地址

2. 查看配置:

git config --list

4. 创建与管理仓库

4.1 新建仓库

  1. 使用命令行创建:
mkdir my_project
cd my_project
git init
  1. 克隆远程仓库:
git clone https://github.com/username/repo.git

4.2 文件加入仓库

  1. 创建或添加文件:
touch file.txt
  1. 添加文件到暂存区:
git add file.txt
  1. 查看状态:
git status

4.3 提交更改

  1. 提交文件到本地仓库:
git commit -m "添加file.txt文件"

5. 分支管理

5.1 创建新分支

git checkout -b new_branch

5.2 切换分支

git checkout master

5.3 查看分支

git branch

6. 分支合并

  1. 切换到目标分支,如 master:
git checkout master
  1. 合并其他分支:
git merge new_branch

7. 冲突处理:必经之路

1. 手动解决冲突

当两个分支修改了同一文件的同一部分,或一个分支删除了文件而另一个分支修改了该文件时,Git无法自动合并,产生冲突。解决步骤:

  1. 识别冲突文件:使用 git status 查看。
  2. 打开冲突文件:冲突位置会有标记。
  3. 编辑文件:决定保留哪部分更改。
  4. 标记为已解决:删除冲突标记并保存。
  5. 添加到暂存区:git add [文件名]
  6. 完成合并:git commit

2. 典型合并冲突示例及解决办法

  1. 同一行被修改
# 分支A
def add(a, b): return a + b # 修改了返回值

# 分支B
def add(a, b): return a + b # 添加了注释

解决:保留分支A的更改并添加注释。

def add(a, b): # 返回两个数的和
return a + b # 保留分支A的更改,并添加分支B的注释
  1. 文件被添加与删除
# 分支A
touch new_file.txt

# 分支B
rm new_file.txt

解决:决定是否需要该文件。

  1. 不同部分修改
# 分支A
def add(a, b): return a + b # 修改了函数体

# 分支B
def add(a, b): # 添加了新参数
def add(a, b, c): return a + b + c

解决:合并两个分支更改。

def add(a, b, c=None):
if c is not None:
return a + b + c
else:
return a + b # 合并了两个分支的更改

3. Git冲突解决图形工具推荐

  1. GitHub Desktop:简单易用,适用于GitHub仓库。
  2. GitKraken:功能强大,提供清晰的分支视图。
  3. SourceTree:免费,适合图形化管理。
  4. Visual Studio Code:内置Git支持,处理简单冲突。
  5. IntelliJ IDEA:对Java/Kotlin开发者友好。

4. 避免代码丢失

  1. 理解冲突原因
  2. 备份原始文件
  3. 逐个解决冲突
  4. 利用历史版本
  5. 运行测试
  6. 代码审查

5. 保证代码质量

  1. 运行测试
  2. 代码审查
  3. 代码风格检查
  4. 静态分析
  5. 手动检查
  6. 合并后复审

8. 查看历史记录

  • 查看提交历史:git log
  • 查看简洁历史:git log --oneline

9. 远程仓库操作

9.1 添加远程仓库

git remote add origin https://github.com/username/repo.git

9.2 推送更改

git push origin master

9.3 拉取更新

git pull origin master

10. 删除分支

  • 删除本地分支:git branch -d branch_name
  • 强制删除:git branch -D branch_name

11. 其他常用命令

  • 查看未跟踪文件:git ls-files --others --exclude-standard
  • 恢复未提交更改:git checkout -- file.txt
  • 查看当前分支:git rev-parse --abbrev-ref HEAD
  • 查看远程地址:git remote -v

总结

以上是Git的安装与基础使用指南,涵盖从环境搭建到实际操作的详细步骤,适用于大多数核心命令和用法。掌握这些工具能有效进行版本控制,促进团队协作,提高开发效率。随着深入使用,会遇到更复杂需求,持续学习有助于更好掌握Git。


工具使用

GitHub Desktop

  1. 安装:访问官网下载对应系统版本。
  2. 克隆仓库:使用GitHub Desktop克隆远程仓库。
  3. 创建分支:在界面中创建新分支。
  4. 提交更改:本地更改后提交。
  5. 解决冲突:冲突时直接在界面中编辑。
  6. 推送更改:解决后推送。

GitKraken

  1. 安装:访问官网下载。
  2. 连接仓库:连接GitHub、GitLab或Bitbucket。
  3. 创建分支:在界面中创建。
  4. 提交更改:完成更改后提交。
  5. 解决冲突:高亮冲突文件,直接编辑。
  6. 推送更改:解决后推送。

SourceTree

  1. 安装:访问官网下载。
  2. 克隆仓库:克隆远程仓库。
  3. 创建分支:在界面中创建。
  4. 提交更改:本地更改后提交。
  5. 解决冲突:冲突文件直接打开编辑。
  6. 推送更改:解决后推送。

Visual Studio Code

  1. 安装:下载并安装VS Code。
  2. 集成Git:安装Git扩展或使用内置支持。
  3. 解决冲突:编辑器中高亮冲突部分。
  4. 提交更改:通过源码控制面板提交。
  5. 推送更改:解决后推送。

IntelliJ IDEA

  1. 安装:下载并安装IntelliJ IDEA。
  2. 集成Git:内置Git支持。
  3. 解决冲突:高亮冲突部分,直接编辑。
  4. 提交更改:通过"Version Control"面板提交。
  5. 推送更改:解决后推送。

对初学者而言,哪个工具更友好?

GitHub Desktop 和 Visual Studio Code 对初学者更友好,图形界面直观。 IntelliJ IDEA 对有编程经验者友好。 GitKraken 和 SourceTree 功能强大但需熟悉高级功能。


这些工具是否支持跨平台?

GitHub Desktop、GitKraken、SourceTree 和 Visual Studio Code 支持Windows、macOS、Linux。 IntelliJ IDEA 也跨平台,但功能可能因版本而异。


Git Extensions安装与中文配置


前沿技术

Git前沿技术包括:

  • Git LFS:管理大文件。
  • Git hooks:自动化脚本。
  • Git submodule:嵌入子仓库。

Git hooks

Git hooks是在特定事件触发的脚本,如提交前、推送后等。

常见hooks:

  1. pre-commit:提交前检查
  2. commit-msg:提交信息验证
  3. prepare-commit-msg:修改提交信息
  4. pre-rebase:rebase前执行
  5. post-checkout:检出后执行
  6. post-merge:合并后执行
  7. pre-push:推送前检查
  8. pre-receive:接收推送前
  9. update:每次推送时执行

示例:提交前检查代码风格

#!/bin/sh
# 检查代码风格
if ! grep -E "^(import|from)" my_project/*.py > /dev/null; then
echo "代码风格不符合规范,请检查!"
exit 1
fi

Git submodule

Git submodule 允许在主仓库中嵌入其他仓库。

使用步骤:

  1. 添加子仓库:
git submodule add <submodule_url> <submodule_dir>
  1. 初始化子仓库:
git submodule init
  1. 更新子仓库:
git submodule update
  1. 提交更改时同时提交主仓库和子仓库。
  2. 删除子仓库:
git submodule deinit <submodule_dir>
rm -rf <submodule_dir>
git rm <submodule_dir>
  1. 拉取子仓库最新代码:
git submodule update --remote

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。