Git命令这样用,代码管理轻松搞定

Git命令这样用,代码管理轻松搞定

在日常开发中,Git命令是每个程序员必备的技能。但是面对几十个Git命令,很多同学总是记不住、用不对。今天就来整理一份最实用的Git命令清单,让你的代码管理变得轻松高效。

基础配置命令

让Git认识你

在开始使用Git之前,先让Git知道你是谁:

bash 复制代码
# 设置用户名和邮箱(全局配置)
git config --global user.name "张三"
git config --global user.email "zhangsan@example.com"

# 查看当前配置
git config --list

# 只为当前项目设置(局部配置)
git config user.name "张三"
git config user.email "zhangsan@company.com"

常用的其他配置:

bash 复制代码
# 设置默认编辑器
git config --global core.editor "code --wait"

# 设置别名,简化命令
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 st    # 等同于 git status
git co    # 等同于 git checkout

仓库初始化和克隆

开始你的Git之旅

创建新仓库

bash 复制代码
# 在当前目录初始化Git仓库
git init

# 在指定目录创建新仓库
git init my-project

# 创建裸仓库(用于服务器)
git init --bare my-repo.git

克隆远程仓库

bash 复制代码
# 克隆远程仓库
git clone https://github.com/user/repo.git

# 克隆到指定目录
git clone https://github.com/user/repo.git my-local-name

# 只克隆最新的提交(浅克隆)
git clone --depth 1 https://github.com/user/repo.git

# 克隆指定分支
git clone -b develop https://github.com/user/repo.git

文件状态管理

掌控代码变更

Git文件有四种状态:

查看文件状态

bash 复制代码
# 查看工作区状态
git status

# 简化显示
git status -s

# 查看具体的文件差异
git diff

# 查看暂存区的差异
git diff --staged

添加文件到暂存区

bash 复制代码
# 添加单个文件
git add filename.txt

# 添加多个文件
git add file1.txt file2.txt

# 添加所有修改的文件
git add .

# 添加所有txt文件
git add *.txt

# 交互式添加(选择性添加文件的部分内容)
git add -p

撤销操作

bash 复制代码
# 撤销工作区的修改
git checkout -- filename.txt

# 撤销暂存区的文件(保留工作区修改)
git reset HEAD filename.txt

# 撤销最后一次提交(保留文件修改)
git reset --soft HEAD~1

# 撤销最后一次提交(丢弃文件修改)
git reset --hard HEAD~1

提交代码命令

记录你的每一次变更

基本提交操作

bash 复制代码
# 提交暂存区的文件
git commit -m "提交信息"

# 添加文件并提交(跳过git add)
git commit -am "提交信息"

# 修改最后一次提交信息
git commit --amend -m "新的提交信息"

# 向最后一次提交添加文件
git add forgotten-file.txt
git commit --amend --no-edit

规范化提交信息

bash 复制代码
# 功能开发
git commit -m "feat: 新增用户登录功能"

# Bug修复
git commit -m "fix: 修复密码验证逻辑错误"

# 文档更新
git commit -m "docs: 更新API使用说明"

# 代码重构
git commit -m "refactor: 优化数据库查询性能"

# 样式调整
git commit -m "style: 统一代码缩进格式"

详细提交信息

bash 复制代码
# 包含详细描述的提交
git commit -m "fix: 修复用户注册邮箱验证问题

- 修复邮箱格式验证正则表达式
- 添加邮箱重复性检查
- 优化错误提示信息显示

Closes #123"

分支管理命令

并行开发的利器

查看分支

bash 复制代码
# 查看本地分支
git branch

# 查看远程分支
git branch -r

# 查看所有分支
git branch -a

# 查看分支详细信息
git branch -v

创建和切换分支

bash 复制代码
# 创建新分支
git branch feature-login

# 切换分支
git checkout feature-login

# 创建并切换分支(一步完成)
git checkout -b feature-login

# 使用新语法创建并切换分支
git switch -c feature-login

# 切换到上一个分支
git checkout -

分支合并和删除

bash 复制代码
# 合并分支(先切换到目标分支)
git checkout main
git merge feature-login

# 删除本地分支
git branch -d feature-login

# 强制删除分支
git branch -D feature-login

# 删除远程分支
git push origin --delete feature-login

远程仓库操作

与团队协作的桥梁

查看远程仓库

bash 复制代码
# 查看远程仓库
git remote

# 查看远程仓库详细信息
git remote -v

# 查看特定远程仓库信息
git remote show origin

添加和删除远程仓库

bash 复制代码
# 添加远程仓库
git remote add origin https://github.com/user/repo.git

# 修改远程仓库地址
git remote set-url origin https://github.com/user/new-repo.git

# 删除远程仓库
git remote remove origin

推送和拉取代码

bash 复制代码
# 推送到远程仓库
git push origin main

# 首次推送并建立跟踪关系
git push -u origin main

# 推送所有分支
git push origin --all

# 拉取远程代码
git pull origin main

# 获取远程代码但不合并
git fetch origin

# 强制推送(谨慎使用)
git push --force origin main

查看历史记录

回顾代码演进历程

基本日志查看

bash 复制代码
# 查看提交历史
git log

# 单行显示提交历史
git log --oneline

# 图形化显示分支历史
git log --graph --oneline

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

# 查看指定作者的提交
git log --author="张三"

高级日志筛选

bash 复制代码
# 查看指定时间范围的提交
git log --since="2024-01-01" --until="2024-01-31"

# 查看包含特定关键词的提交
git log --grep="登录"

# 查看指定文件的修改历史
git log -- src/main.js

# 查看文件的详细修改内容
git log -p src/main.js

# 查看提交统计信息
git log --stat

暂存工作状态

临时保存未完成的工作

基本stash操作

bash 复制代码
# 暂存当前工作
git stash

# 带描述的暂存
git stash push -m "正在开发登录功能"

# 查看stash列表
git stash list

# 恢复最新的stash
git stash pop

# 应用指定的stash
git stash apply stash@{0}

# 删除stash
git stash drop stash@{0}

高级stash操作

bash 复制代码
# 只暂存已跟踪的文件
git stash --keep-index

# 包含未跟踪的文件
git stash -u

# 交互式暂存
git stash -p

# 从stash创建分支
git stash branch feature-temp stash@{0}

实用技巧命令

提高工作效率的秘诀

文件操作

bash 复制代码
# 删除文件
git rm filename.txt

# 重命名文件
git mv oldname.txt newname.txt

# 停止跟踪文件但保留本地文件
git rm --cached filename.txt

# 查看文件内容
git show HEAD:filename.txt

标签管理

bash 复制代码
# 创建标签
git tag v1.0.0

# 创建带描述的标签
git tag -a v1.0.0 -m "版本1.0.0发布"

# 查看标签列表
git tag

# 推送标签到远程
git push origin v1.0.0

# 推送所有标签
git push origin --tags

# 删除标签
git tag -d v1.0.0
git push origin --delete v1.0.0

搜索和定位

bash 复制代码
# 在代码中搜索
git grep "function"

# 查找引入bug的提交
git bisect start
git bisect bad HEAD
git bisect good v1.0.0

# 查看文件的每一行是谁修改的
git blame filename.txt

# 查看两个提交之间的差异
git diff commit1..commit2

常见问题解决

遇到问题不慌张

提交相关问题

bash 复制代码
# 合并多个提交为一个
git rebase -i HEAD~3

# 修改历史提交信息
git rebase -i HEAD~3
# 将pick改为reword

# 撤销merge
git reset --hard HEAD~1

# 查找丢失的提交
git reflog
git cherry-pick commit-hash

冲突解决

bash 复制代码
# 查看冲突文件
git status

# 手动解决冲突后
git add 冲突文件
git commit

# 放弃merge
git merge --abort

# 使用工具解决冲突
git mergetool

Git命令速查表

常用命令一览

功能 命令 说明
初始化 git init 初始化仓库
克隆 git clone <url> 克隆远程仓库
状态 git status 查看工作区状态
添加 git add . 添加所有文件到暂存区
提交 git commit -m "msg" 提交代码
推送 git push origin main 推送到远程分支
拉取 git pull origin main 拉取远程代码
分支 git checkout -b <name> 创建并切换分支
合并 git merge <branch> 合并分支
日志 git log --oneline 查看提交历史

总结

掌握Git命令不是一天的事情,但是通过系统的学习和不断的实践,你会发现Git其实并没有想象中那么复杂。记住这些关键点:

  1. 从基础开始:先掌握add、commit、push等基本命令
  2. 理解工作流:明白工作区、暂存区、本地仓库的关系
  3. 多加练习:在实际项目中不断使用和总结
  4. 善用别名:为常用命令设置别名,提高效率

记住,Git是工具,不是障碍。掌握了这些命令,你的代码管理将会变得游刃有余!


觉得这篇文章对你有帮助吗?欢迎点赞关注推荐给更多的小伙伴!