Vaisravana

Vaisravana

Git 的核心用法和常见操作指南:

git
27
2025-02-21

Git 是目前最流行的分布式版本控制系统,广泛用于软件开发协作。以下是 Git 的核心用法和常见操作指南:


一、Git 核心概念

  1. 仓库 (Repository)

    • 存储代码的历史记录和版本快照。

    • 分为本地仓库 (local) 和远程仓库 (remote)(如 GitHub)。

  2. 提交 (Commit)

    • 记录代码变更的快照,包含作者信息、时间戳和变更内容。

    • 每个提交都有一个唯一的哈希值(如 commit abc123)。

  3. 分支 (Branch)

    • 并行开发的独立线路,用于隔离功能开发。

    • 默认分支为 mainmaster

  4. 合并 (Merge)

    • 将不同分支的代码整合到一起。

  5. 拉取 (Pull)

    • 从远程仓库获取最新代码并合并到本地。

  6. 推送 (Push)

    • 将本地代码上传到远程仓库。


二、常用命令速查表

命令

作用

git init

初始化本地仓库

git clone <url>

克隆远程仓库到本地

git add .

将所有修改添加到暂存区

git commit -m "msg"

提交代码并附加描述

git status

查看当前文件状态

git log

查看提交历史

git diff

比较工作区和暂存区的差异

git pull origin main

拉取远程 main 分支并合并到本地

git push origin main

推送本地 main 分支到远程仓库

git branch

列出所有本地分支

git checkout branch

切换到指定分支

git merge branch

合并指定分支到当前分支

git remote add origin <url>

关联远程仓库


三、分支管理(核心!)

1. 创建与切换分支

# 创建新分支
git branch new-feature

# 切换到新分支
git checkout new-feature

# 或简化为一行
git checkout -b new-feature

2. 合并分支

(1) Merge 方式(保留合并记录)

# 切换回主分支
git checkout main

# 合并 new-feature 分支
git merge new-feature

# 提交合并结果
git commit -m "Merge new-feature"

(2) Rebase 方式(保持线性历史)

# 在 new-feature 分支上变基到 main
git checkout new-feature
git rebase main

# 切换回 main 并合并
git checkout main
git merge new-feature

3. 分支冲突解决

当合并时出现冲突,需手动编辑冲突文件:

# 标记冲突已解决
git add conflicted-file.txt

# 提交合并结果
git commit -m "Resolved conflict"

四、远程仓库操作

1. 关联远程仓库

git remote add origin <仓库URL>  # 添加远程仓库
git remote -v                   # 查看远程仓库列表

2. 拉取与推送

# 拉取所有分支
git fetch origin

# 拉取指定分支并合并
git pull origin main

# 推送本地分支到远程
git push origin main

五、高级技巧

1. 标签 (Tag)

为重要版本打标签:

# 创建轻量标签(如 v1.0)
git tag v1.0

# 创建附注标签(含信息)
git tag -a v1.0 -m "Release version 1.0"

# 推送标签到远程
git push origin --tags

2. 查看提交历史

# 查看最近 3 次提交
git log -3

# 查看特定文件的修改记录
git log --follow filename.txt

3. 撤销操作

  • 撤销未提交的修改

    git reset HEAD file.txt       # 撤销单个文件的修改
    git checkout .               # 撤销所有未提交修改
  • 撤销已提交的提交

    git revert commit-id          # 创建新提交撤销旧提交
    git reset --hard commit-id    # 强制回退到指定提交(谨慎使用!)

六、协作流程(Git Flow 示例)

  1. 开发新功能

    git checkout -b feature-x
    # 编写代码并提交
    git add .
    git commit -m "Add feature x"
  2. 同步主分支

    git checkout main
    git pull origin main
  3. 合并功能分支

    git merge feature-x
    git push origin main

七、常见问题与解决

1. 推送被拒绝

错误提示
! [rejected] main -> main (non-fast-forward)
解决方法

# 先拉取最新代码
git pull origin main

# 再尝试推送
git push origin main

2. 忘记关联远程仓库

解决方法

git remote add origin <仓库URL>
git branch -u origin main  # 关联主分支

3. 文件冲突

解决步骤

  1. 手动编辑冲突文件。

  2. 执行 git add <file> 标记解决。

  3. 提交合并:git commit -m "Resolved conflict"


八、推荐学习资源

  1. 官方文档Git SCM

  2. 书籍:《Pro Git》(免费电子书)

  3. 在线课程GitHub Learning Lab


通过掌握以上操作,你可以高效管理代码版本、协作开发并避免常见陷阱。如果有具体场景或问题,欢迎进一步讨论! 😊