Linux 中 Git 操作大全
常用命令、工作流及实用技巧,适用于日常开发场景:
一、基础配置
# 设置全局用户名和邮箱
git config --global user.name "Your Name"
git config --global user.email "your@email.com"# 保存凭证(避免重复输入密码)
git config --global credential.helper store# 查看配置列表
git config --list
二、仓库操作
命令 | 说明 |
---|---|
git init | 初始化本地仓库 |
git clone <repo_url> | 克隆远程仓库到本地 |
git remote -v | 查看远程仓库地址 |
git remote add origin <url> | 添加远程仓库 |
git remote remove origin | 移除远程仓库 |
三、提交与修改
命令 | 说明 |
---|---|
git status | 查看文件状态 |
git add <file> | 添加文件到暂存区 |
git add . | 添加所有修改到暂存区 |
git commit -m "message" | 提交暂存区内容 |
git commit --amend | 修改最后一次提交(不产生新记录) |
git restore <file> | 撤销工作区修改(未 add) |
git restore --staged <file> | 撤销暂存区修改(已 add) |
四、分支管理
命令 | 说明 |
---|---|
git branch | 查看本地分支 |
git branch -a | 查看所有分支(含远程) |
git branch <branch_name> | 创建新分支 |
git checkout <branch> | 切换到分支 |
git checkout -b <new_branch> | 创建并切换到新分支 |
git merge <branch> | 合并分支到当前分支 |
git branch -d <branch> | 删除本地分支 |
git push origin --delete <branch> | 删除远程分支 |
git push -u origin <branch> | 推送本地分支到远程并关联 |
五、同步与推送
命令 | 说明 |
---|---|
git fetch | 从远程拉取元数据(不合并) |
git pull | 拉取远程分支并合并(= git fetch + git merge ) |
git pull --rebase | 拉取远程分支并变基(推荐) |
git push | 推送本地提交到远程 |
git push --force | 强制推送(覆盖远程,慎用!) |
六、撤销与回退
命令 | 说明 |
---|---|
git reset --soft HEAD^ | 撤销 commit,保留修改到暂存区 |
git reset --mixed HEAD^ | 撤销 commit 和 add(默认) |
git reset --hard HEAD^ | 彻底撤销 commit 和修改(慎用!) |
git revert <commit_id> | 创建新提交来撤销指定提交(安全) |
七、日志与对比
命令 | 说明 |
---|---|
git log | 查看提交历史 |
git log --oneline --graph | 简洁分支可视化日志 |
git diff | 查看工作区与暂存区的差异 |
git diff --staged | 查看暂存区与最新提交的差异 |
git diff <branch1> <branch2> | 比较两个分支差异 |
八、储藏与标签
命令 | 说明 |
---|---|
git stash | 临时储藏工作区修改 |
git stash pop | 恢复最近储藏的修改 |
git tag v1.0 | 创建轻量标签 |
git tag -a v1.0 -m "message" | 创建含注释的标签 |
git push origin --tags | 推送所有标签到远程 |
九、高级技巧
-
交互式变基(修改历史)
git rebase -i HEAD~3 # 合并/修改最近3次提交
-
子模块管理
git submodule add <repo_url> <path> # 添加子模块 git submodule update --init --recursive # 初始化子模块
-
忽略文件配置
创建.gitignore
文件,每行一个忽略规则(支持通配符):plaintext
*.log /build/ .env
十、常见问题解决
-
冲突处理:
-
执行
git pull
后出现冲突 -
手动编辑冲突文件(搜索
<<<<<<<
标记) -
解决后执行
git add <file>
+git commit
-
-
恢复误删分支:
git reflog # 查找分支最后提交的 commit_id git branch <branch> <commit_id>
Git 工作流
工作区 (Working Directory)↓ add 暂存区 (Staging Area)↓ commit 本地仓库 (Local Repository)↓ push 远程仓库 (Remote Repository)
提示:
使用
git help <command>
查看命令详细帮助。推荐使用 SSH Key 认证代替账号密码(更安全)。
团队协作遵循 Git Flow 或 GitHub Flow 规范。
掌握以上命令可覆盖 95% 的日常 Git 使用场景!