在现代软件开发中,Git 已成为不可或缺的版本控制系统。无论是个人项目还是团队协作,掌握 Git 的常用命令行操作,不仅能提升开发效率,还能避免因误操作导致的代码丢失或冲突。本文将系统梳理 Git 最常用、最实用的命令行指令,并结合实际场景给出使用示例,助你从 Git 新手进阶为高效开发者。


一、Git 基础概念简述

在深入命令之前,先明确几个核心概念:

  • 工作区(Working Directory):你当前编辑的文件所在目录。
  • SSH 公钥配置(可选但推荐,下一篇文章中会详细讲解):
    ssh-keygen -t ed25519 -C "your_email@example.com"
    # 然后将 ~/.ssh/id_ed25519.pub 内容添加到 GitHub/GitLab 等平台
    

三、本地仓库操作

1. 初始化仓库

git init

在当前目录创建一个新的 Git 仓库。

2. 查看状态

git status

显示哪些文件被修改、暂存或未跟踪。建议每次提交前都运行此命令。

3. 添加文件到暂存区

git add <file>        # 添加单个文件
git add .             # 添加所有修改和新文件(不包括 .gitignore 忽略的)
git add -A            # 添加所有变更(包括删除)

小技巧:git add -p 可交互式地选择要暂存的代码块(hunk),非常适合精细化提交。

4. 提交更改

git commit -m "描述本次提交的内容"

将暂存区内容提交到本地仓库。提交信息应简洁明了,遵循约定(如 Conventional Commits)更佳。

5. 查看提交历史

git log                   # 完整日志
git log --oneline         # 单行简洁格式
git log --graph --all     # 图形化分支历史

四、远程仓库协作

1. 关联远程仓库

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

2. 推送代码到远程

git push -u origin main   # 首次推送并设置上游分支
git push                  # 后续直接推送

注意:GitHub 默认主分支名已从 master 改为 main,请根据实际情况调整。

3. 拉取远程更新

git pull origin main

等价于 git fetch + git merge。建议在多人协作时频繁拉取,避免冲突。

4. 克隆远程仓库

git clone https://github.com/username/repo.git

下载整个项目及其完整历史记录。


五、分支管理(团队协作核心)

1. 查看分支

git branch          # 列出本地分支
git branch -a       # 列出所有分支(含远程)

2. 创建并切换分支

git checkout -b feature/login   # 创建并切换到新分支
# 或使用新语法(Git 2.23+)
git switch -c feature/login

3. 合并分支

git checkout main
git merge feature/login

feature/login 分支合并到当前分支(如 main)。

4. 删除分支

git branch -d feature/login      # 安全删除(已合并)
git branch -D feature/login      # 强制删除(未合并)

5. 解决冲突

当合并或拉取时出现冲突,Git 会标记冲突区域:

<<<<<<< HEAD
本地代码
=======
远程代码
>>>>>>> branch-name

手动编辑解决后,执行:

git add .
git commit -m "resolve merge conflict"

六、撤销与回退(救命命令)

1. 撤销工作区修改(未 add)

git checkout -- <file>    # 丢弃指定文件的修改
git restore <file>        # Git 2.23+ 新命令,功能相同

2. 撤销暂存区(已 add 未 commit)

git reset HEAD <file>

3. 撤销最近一次提交(保留修改)

git reset --soft HEAD~1

4. 彻底回退到某次提交(慎用!)

git reset --hard <commit-id>

此操作会丢失之后的所有提交,请确保已备份或仅用于本地分支。

5. 修改上一次提交信息

git commit --amend -m "新的提交信息"

七、标签管理(用于版本发布)

git tag v1.0.0                    # 创建轻量标签
git tag -a v1.0.0 -m "Release"    # 创建带注释的标签
git push origin v1.0.0            # 推送标签到远程
git push origin --tags            # 推送所有标签

八、实用技巧与最佳实践

  1. 配置别名:简化常用命令

    git config --global alias.st status
    git config --global alias.co checkout
    git config --global alias.br branch
    git config --global alias.ci commit
    git config --global alias.lg "log --oneline --graph --all"
    
  2. 忽略文件:在项目根目录创建 .gitignore 文件,列出不想纳入版本控制的文件(如 node_modules/, *.log)。

  3. 查看差异

    git diff           # 工作区 vs 暂存区
    git diff --cached  # 暂存区 vs 最近提交
    git diff HEAD      # 工作区 vs 最近提交
    
  4. 找回“丢失”的提交
    使用 git reflog 查看 HEAD 的变更历史,即使执行了 reset --hard 也能找回。


九、结语

掌握这些 Git 命令,你已经具备了日常开发所需的 90% 能力。记住:Git 的核心思想是“快照”而非“差异”,每一次提交都是项目的一个完整快照。善用分支、勤于提交、规范日志,你的代码协作之路将更加顺畅。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐