当前位置: 首页 > article >正文

Git 入门学习教程

Git 入门学习教程

什么是 Git?

Git 是一个分布式版本控制系统,由 Linus Torvalds 为 Linux 内核开发而创建。它可以帮助开发者:

  • 跟踪代码变化
  • 协作开发项目
  • 回退到之前的版本
  • 创建分支进行实验性开发

安装 Git

Windows

  1. 下载 Git for Windows: https://gitforwindows.org/
  2. 运行安装程序,按照默认选项安装

macOS

  1. 安装 Xcode 命令行工具(在终端运行 xcode-select --install
  2. 或者使用 Homebrew: brew install git

Linux (Ubuntu/Debian)

sudo apt-get update
sudo apt-get install git

配置 Git

安装完成后,首先需要配置你的用户名和邮箱:

git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

Git 基本概念

  1. 仓库 (Repository): 项目文件夹,Git 用来跟踪管理的地方
  2. 提交 (Commit): 对文件变化的一次快照
  3. 分支 (Branch): 独立开发线
  4. 远程 (Remote): 远程仓库(如 GitHub、GitLab 等)

基本工作流程

1. 初始化仓库

mkdir my-project
cd my-project
git init

2. 查看状态

git status

3. 添加文件到暂存区

git add 文件名  # 添加特定文件
git add .      # 添加所有更改

4. 提交更改

git commit -m "提交信息描述"

5. 查看提交历史

git log

分支管理

创建分支

git branch 分支名

切换分支

git checkout 分支名

创建并切换分支(合并上面两步)

git checkout -b 分支名

合并分支

git checkout main
git merge 分支名

删除分支

git branch -d 分支名

远程仓库

克隆远程仓库

git clone 仓库URL

添加远程仓库

git remote add origin 仓库URL

推送更改到远程

git push -u origin 分支名

拉取远程更改

git pull origin 分支名

常用命令速查

命令描述
git init初始化新仓库
git clone <url>克隆远程仓库
git add <file>添加文件到暂存区
git commit -m "msg"提交更改
git status查看状态
git log查看提交历史
git branch列出所有分支
git checkout <branch>切换分支
git merge <branch>合并分支
git pull拉取远程更新
git push推送本地更新

实用技巧

  1. 撤销更改:

    git checkout -- 文件名  # 撤销工作区修改
    git reset HEAD 文件名   # 撤销暂存区修改
    
  2. 修改最后一次提交:

    git commit --amend
    
  3. 查看差异:

    git diff          # 查看未暂存的更改
    git diff --cached # 查看已暂存的更改
    
  4. 忽略文件:
    创建 .gitignore 文件,列出要忽略的文件模式

学习资源

  1. Pro Git 书籍 - 免费在线 Git 权威指南
  2. GitHub 学习实验室 - 交互式 Git 学习
  3. Learn Git Branching - 可视化学习 Git 分支

总结

Git 是开发者必备的工具,虽然初学可能有些复杂,但掌握基本命令后就能大大提高工作效率。建议多实践,遇到问题时善用 git help 或在线搜索解决方案。

http://www.lryc.cn/news/2397332.html

相关文章:

  • 构建高性能风控指标系统
  • openfeignFeign 客户端禁用 SSL
  • DeepSeek 赋能自动驾驶仿真测试:解锁高效精准新范式
  • 晨控CK-UR12与西门子PLC配置Modbus TCP通讯连接操作手册
  • 实验一:PyTorch基本操作实验
  • 可视化大屏通用模板Axure原型设计案例
  • 通配符(Wildcard)与正则表达式(Regular Expression)的关系及区别
  • 历年山东大学计算机保研上机真题
  • Java处理动态的属性:字段不固定、需要动态扩展的 JSON 数据结构
  • MAC电脑怎么通过触摸屏打开右键
  • 用 Whisper 打破沉默:AI 语音技术如何重塑无障碍沟通方式?
  • 【东枫科技】KrakenSDR 天线阵列设置
  • Spring Boot中的事件与JMS消息集成
  • ubuntu/windows系统下如何让.desktop/.exe文件 在开机的时候自动运行
  • 云计算数据治理
  • 【Net】TCP粘包与半包
  • 【Android】如何抓取 Android 设备的 UDP/TCP 数据包?
  • 深度解析 Nginx 配置:从性能优化到 HTTPS 安全实践
  • 触发器与存储过程详解
  • 游戏盾与高防CDN的协同防御策略分析
  • Scratch节日 | 六一儿童节射击游戏
  • GPU层次结构(Nvidia和Apple M芯片,从硬件到pytorch)
  • 一次借助ChatGPT抵御恶意攻击的经历,为个人服务器添加自动防御系统Fail2ban
  • (九)深度学习---自然语言处理基础
  • 【Java Web】速通Tomcat
  • Docker快速部署数据同步工具DataX-Web
  • 从零开始的云计算生活——第十四天,困难重重,安全管理。
  • 迁移学习模型构建指南(Python实现)
  • 【设计模式-4.6】行为型——状态模式
  • 【LeetCode 热题100】动态规划实战:打家劫舍、完全平方数与零钱兑换(LeetCode 198 / 279 / 322)(Go语言版)