Git 学习笔记

Git

Git 简介与基础概念

  • 分布式版本控制系统:由Linus Torvalds开发,用于高效管理项目版本。
  • 与SVN区别
    • 分布式架构(无需中央服务器)
    • 元数据存储方式
    • 轻量级分支模型
    • 无全局版本号
    • SHA-1哈希保证数据完整性

安装与配置

多平台安装

  • Linuxapt/yum install git
  • Windows:下载Git for Windows或使用winget
  • Mac:Homebrew或图形安装包
  • 验证安装git --version

基础配置

git config --global user.name "YourName"
git config --global user.email "email@example.com"
git config --global core.editor "code --wait"  # 设置默认编辑器

核心工作流程

仓库操作

  • 初始化git init
  • 克隆仓库git clone <url>
  • 文件状态管理
    git add <file>      # 添加到暂存区
    git commit -m "msg" # 提交到版本库
    git status          # 查看状态
    git diff            # 查看差异
    

分支管理

命令 功能
git branch <name> 创建分支
git checkout <branch> 切换分支
git merge <branch> 合并分支
git branch -d <branch> 删除分支
  • 冲突解决:手动编辑冲突文件 → git addgit commit

版本控制进阶

标签管理

git tag v1.0              # 创建轻量标签
git tag -a v1.1 -m "描述" # 附注标签
git push origin --tags    # 推送所有标签
git tag -d v1.0          # 删除标签

历史查看

git log --oneline --graph  # 简洁图形化日志
git blame <file>          # 查看文件修改历史

远程协作

GitHub集成

  1. SSH密钥配置

    ssh-keygen -t rsa -C "email@example.com"
    cat ~/.ssh/id_rsa.pub → 添加到GitHub
    
  2. 远程仓库操作

    git remote add origin <url>  # 添加远程仓库
    git push -u origin main      # 首次推送
    git pull origin main         # 获取更新
    

高级操作

代码暂存与恢复

git stash        # 暂存当前修改
git stash pop    # 恢复最近暂存内容

版本回退

git reset --soft HEAD~1  # 撤销提交保留修改
git reset --hard HEAD~3  # 彻底回退到前3个版本
git revert <commit>      # 创建逆向提交

代码重组

git rebase -i HEAD~3     # 交互式变基
git cherry-pick <commit> # 选择性应用提交

服务器搭建

基础Git服务

  1. 创建裸仓库:

    git init --bare project.git
    chown -R git:git project.git
    
  2. 客户端克隆:

    git clone user@server:/path/project.git
    

GitLab部署(Ubuntu示例)

sudo EXTERNAL_URL="http://your-domain" apt-get install gitlab-ee
# 通过Web界面完成初始化配置

图形化工具

  • Sourcetree:可视化分支管理/提交历史
  • GitKraken:跨平台客户端支持高级Git操作
  • VS Code集成:内置Git功能支持基础操作

好习惯

  1. 频繁提交小改动
  2. 使用特性分支开发新功能
  3. 提交信息采用"动词+对象"格式(如:"Fix user login validation")
  4. 定期执行git gc优化仓库
  5. 重要版本通过标签标记

posted @ 2025-05-05 22:44  thedyingkai_(TDK)  阅读(17)  评论(0)    收藏  举报