Git 的详细介绍及用法

news/2025/3/13 19:00:56/

一、Git 的优点

  1. 分布式版本控制

    • 每个开发者都拥有完整的仓库副本,无需依赖中央服务器(如 SVN)。
    • 支持离线操作(提交、查看历史、创建分支等)。
  2. 高效的分支管理

    • 创建和切换分支速度快(几乎是瞬间完成)。
    • 适合多人协作开发,支持多种工作流(如 Git Flow、GitHub Flow)。
  3. 强大的撤销和恢复能力

    • 可以回退到任意历史版本,避免代码丢失。
    • 提供 git resetgit revertgit stash 等撤销工具。
  4. 数据完整性

    • 所有文件通过 SHA-1 哈希算法校验,确保内容不被篡改。
  5. 适合多人协作

    • 通过 pull requestmergerebase 实现代码审查和集成。

二、Git 详细用法与代码示例

1. 安装与配置

  • 安装 Git
    下载地址:https://git-scm.com/

  • 配置用户信息

    git config --global user.name "Your Name"
    git config --global user.email "your.email@example.com"
    
  • 查看配置

    git config --list
    

2. 基础命令

(1) 初始化仓库
mkdir my-project
cd my-project
git init  # 初始化 Git 仓库
(2) 添加文件到暂存区
git add file.txt        # 添加单个文件
git add .               # 添加所有修改的文件
git add *.js            # 添加所有 .js 文件
(3) 提交到本地仓库
git commit -m "Initial commit: add project structure"
(4) 查看状态与历史
git status              # 查看工作区状态
git log                 # 查看提交历史
git log --oneline       # 简洁模式查看历史
git diff                # 查看未暂存的修改

3. 分支管理

(1) 创建与切换分支
git branch feature-login    # 创建分支
git checkout feature-login  # 切换分支
git checkout -b feature-login  # 创建并切换(推荐)
(2) 合并分支
git checkout main          # 切换到主分支
git merge feature-login    # 合并 feature-login 到 main
(3) 解决冲突

如果合并时发生冲突,手动修改冲突文件后:

git add resolved-file.txt
git commit -m "Resolve merge conflict"
(4) 删除分支
git branch -d feature-login  # 删除本地分支
git push origin --delete feature-login  # 删除远程分支

4. 远程仓库(GitHub/GitLab)

(1) 添加远程仓库
git remote add origin https://github.com/yourname/repo.git
(2) 推送代码到远程
git push -u origin main  # 首次推送
git push                 # 后续推送
(3) 拉取代码
git pull origin main     # 拉取并合并远程代码
git fetch origin         # 仅拉取不合并
(4) 克隆仓库
git clone https://github.com/yourname/repo.git

5. 高级操作

(1) 撤销修改
git checkout -- file.txt  # 丢弃工作区的修改
git reset HEAD file.txt   # 从暂存区移除文件
git reset --hard HEAD^    # 回退到上一个提交(慎用!会丢失修改)
(2) 暂存未完成的工作
git stash          # 保存当前修改到暂存区
git stash pop      # 恢复最近一次暂存的修改
(3) 重写提交历史
git commit --amend -m "New message"  # 修改最后一次提交
git rebase -i HEAD~3                 # 交互式修改最近3次提交

三、代码示例:完整工作流

假设你要开发一个登录功能:

# 1. 克隆远程仓库
git clone https://github.com/yourname/project.git
cd project# 2. 创建并切换到新分支
git checkout -b feature-login# 3. 修改代码后提交
echo "function login() { ... }" >> login.js
git add login.js
git commit -m "Add login function"# 4. 推送分支到远程
git push -u origin feature-login# 5. 在 GitHub 创建 Pull Request (PR) 合并到 main
# (PR 通过后合并)# 6. 切换回主分支并同步代码
git checkout main
git pull origin main

四、最佳实践

  1. 频繁提交
    每个小功能或修复单独提交,提交信息清晰(如 “Fix: resolve login timeout issue”)。

  2. 合理使用分支

    • main/master:稳定版本
    • develop:开发分支
    • feature/*:功能分支
    • hotfix/*:紧急修复分支
  3. 定期拉取远程代码
    避免长时间不同步导致冲突。

  4. 使用 .gitignore
    忽略临时文件(如 node_modules/, .log)。

  5. 代码审查
    通过 Pull Request 进行代码审查后再合并。


通过以上内容,你可以逐步掌握 Git 的核心用法。建议多实践操作,遇到问题时善用 git statusgit log 查看状态和历史。


http://www.ppmy.cn/news/1578856.html

相关文章

JVM、MySQL常见面试题(尽力局)

JVM篇 一.谈一谈JDK、JRE、JVM分别是什么,有什么联系? 1.JDK是Java工具包,里面包含了JRE、Javac编译器等。 2.JRE是java运行环境,里面包含了JVM、JavaSE标准库类等。 3.JVM是Java虚拟机,运行编译后的.class的文件&am…

《鸿蒙系统下AI模型训练加速:时间成本的深度剖析与优化策略》

在当今数字化浪潮中,鸿蒙系统凭借其独特的分布式架构与强大的生态潜力,为人工智能的发展注入了新的活力。随着AI应用在鸿蒙系统上的日益普及,如何有效降低模型训练的时间成本,成为了开发者与研究者们亟待攻克的关键课题。这不仅关…

备赛蓝桥杯之第XX届职业院校组省赛第七题:Github 明星项目统计

提示:本篇文章仅仅是作者自己目前在备赛蓝桥杯中,自己学习与刷题的学习笔记,写的不好,欢迎大家批评与建议 由于个别题目代码量与题目量偏大,请大家自己去蓝桥杯官网【连接高校和企业 - 蓝桥云课】去寻找原题&#xff0…

pdf修改内容:分享5款好用的工具

pdf修改内容用什么软件?PDF内容修改工具的便捷性很大地提升了我们的工作效率。通过这些工具,我们可以轻松地对PDF文档进行文字编辑、图片替换、页面调整等操作,无需繁琐的转换步骤。这些修改工具不仅操作简便,而且功能强大&#x…

Electron使用WebAssembly实现CRC-32 常用标准校验

Electron使用WebAssembly实现CRC-32 常用标准校验 将C/C语言代码,经由WebAssembly编译为库函数,可以在JS语言环境进行调用。这里介绍在Electron工具环境使用WebAssembly调用CRC-32 常用标准格式校验的方式。 CRC-32 常用标准校验函数WebAssembly源文件…

Kotlin 中实现静态方法的几种方式

在 Kotlin 中,与 Java 不同,Kotlin 并不直接支持在类中定义静态方法(static 方法)。不过,Kotlin 提供了多种替代方式来实现类似的功能,例如通过 object 单例、companion object 伴生对象 或 顶级函数。以下…

2025年渗透测试面试题总结-华顺某信安-安全服务工程师(题目+回答)

网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 华顺某信安-安全服务工程师 红蓝队经验 对于shiro漏洞了解多少 APP测试经历 xposed用的什么框架,有…

项目上传到Gitee过程

在gitee上新建一个仓库 点击“克隆/下载”获取仓库地址 电脑上要装好git 在电脑本地文件夹右键“Git Bash Here” 依次执行如下命令 git init git remote add origin https://gitee.com/qlexcel/stm32-simple.git git pull origin master git add . git commit -m ‘init’…