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

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

基础配置命令

让Git认识你

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

# 设置用户名和邮箱(全局配置)
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"

常用的其他配置:

# 设置默认编辑器
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之旅

创建新仓库

# 在当前目录初始化Git仓库
git init # 在指定目录创建新仓库
git init my-project # 创建裸仓库(用于服务器)
git init --bare my-repo.git

克隆远程仓库

# 克隆远程仓库
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文件有四种状态:

查看文件状态

# 查看工作区状态
git status # 简化显示
git status -s # 查看具体的文件差异
git diff # 查看暂存区的差异
git diff --staged

添加文件到暂存区

# 添加单个文件
git add filename.txt # 添加多个文件
git add file1.txt file2.txt # 添加所有修改的文件
git add . # 添加所有txt文件
git add *.txt # 交互式添加(选择性添加文件的部分内容)
git add -p

撤销操作

# 撤销工作区的修改
git checkout -- filename.txt # 撤销暂存区的文件(保留工作区修改)
git reset HEAD filename.txt # 撤销最后一次提交(保留文件修改)
git reset --soft HEAD~1 # 撤销最后一次提交(丢弃文件修改)
git reset --hard HEAD~1

提交代码命令

记录你的每一次变更

基本提交操作

# 提交暂存区的文件
git commit -m "提交信息" # 添加文件并提交(跳过git add)
git commit -am "提交信息" # 修改最后一次提交信息
git commit --amend -m "新的提交信息" # 向最后一次提交添加文件
git add forgotten-file.txt
git commit --amend --no-edit

规范化提交信息

# 功能开发
git commit -m "feat: 新增用户登录功能" # Bug修复
git commit -m "fix: 修复密码验证逻辑错误" # 文档更新
git commit -m "docs: 更新API使用说明" # 代码重构
git commit -m "refactor: 优化数据库查询性能" # 样式调整
git commit -m "style: 统一代码缩进格式"

详细提交信息

# 包含详细描述的提交
git commit -m "fix: 修复用户注册邮箱验证问题 - 修复邮箱格式验证正则表达式
- 添加邮箱重复性检查
- 优化错误提示信息显示 Closes #123"

分支管理命令

并行开发的利器

查看分支

# 查看本地分支
git branch # 查看远程分支
git branch -r # 查看所有分支
git branch -a # 查看分支详细信息
git branch -v

创建和切换分支

# 创建新分支
git branch feature-login # 切换分支
git checkout feature-login # 创建并切换分支(一步完成)
git checkout -b feature-login # 使用新语法创建并切换分支
git switch -c feature-login # 切换到上一个分支
git checkout -

分支合并和删除

# 合并分支(先切换到目标分支)
git checkout main
git merge feature-login # 删除本地分支
git branch -d feature-login # 强制删除分支
git branch -D feature-login # 删除远程分支
git push origin --delete feature-login

远程仓库操作

与团队协作的桥梁

查看远程仓库

# 查看远程仓库
git remote # 查看远程仓库详细信息
git remote -v # 查看特定远程仓库信息
git remote show origin

添加和删除远程仓库

# 添加远程仓库
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

推送和拉取代码

# 推送到远程仓库
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

查看历史记录

回顾代码演进历程

基本日志查看

# 查看提交历史
git log # 单行显示提交历史
git log --oneline # 图形化显示分支历史
git log --graph --oneline # 查看最近3次提交
git log -3 # 查看指定作者的提交
git log --author="张三"

高级日志筛选

# 查看指定时间范围的提交
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操作

# 暂存当前工作
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操作

# 只暂存已跟踪的文件
git stash --keep-index # 包含未跟踪的文件
git stash -u # 交互式暂存
git stash -p # 从stash创建分支
git stash branch feature-temp stash@{0}

实用技巧命令

提高工作效率的秘诀

文件操作

# 删除文件
git rm filename.txt # 重命名文件
git mv oldname.txt newname.txt # 停止跟踪文件但保留本地文件
git rm --cached filename.txt # 查看文件内容
git show HEAD:filename.txt

标签管理

# 创建标签
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

搜索和定位

# 在代码中搜索
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

常见问题解决

遇到问题不慌张

提交相关问题

# 合并多个提交为一个
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

冲突解决

# 查看冲突文件
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是工具,不是障碍。掌握了这些命令,你的代码管理将会变得游刃有余!


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

Git命令这样用,代码管理轻松搞定的更多相关文章

  1. 几行c#代码,轻松搞定一个女大学生

    几行c#代码,轻松搞定一个女大学生 的作业... 哈哈,标题党了哈,但是是真的,在外面敲代码,想赚点外快,接到了一个学生的期末考试,是一个天气预报的程序.程序并不难. 看到这个需求第一个想法就是只要找 ...

  2. git 命令合并分支代码

    git 命令合并分支代码 对于复杂的系统,我们可能要开好几个分支来开发,那么怎样使用git合并分支呢? 合并步骤: 1.进入要合并的分支(如开发分支合并到master,则进入master目录) git ...

  3. 如何通过Git命令行把代码提交到github上

    1.http://www.cnblogs.com/leesf456/p/5169765.html   参考博客 背景:最近入手了mac,看见mac上的大神都是在用git命令行推代码,我很羡慕有木有,好 ...

  4. 如何使用Git命令克隆仓库代码

    今天我的电脑装了新系统,刚装了Git到电脑上,突然有一个大胆的想法,以后不适用可视化工具了. 要逐步锻炼我的命令的操作能力,不能太依赖可视化工具. 今天先记录一下如何使用git命令克隆仓库代码 git ...

  5. GIT命令行统计代码提交行数

    项目中遇到写报告的时候要反馈某个人或者某个功能的代码量,又没有集成CI这些插件,可以简单的用GIT命令统计下代码提交量: --统计某个人的提交代码 git log --author="old ...

  6. 【微服务】之二:从零开始,轻松搞定SpringCloud微服务系列--注册中心(一)

    微服务体系,有效解决项目庞大.互相依赖的问题.目前SpringCloud体系有强大的一整套针对微服务的解决方案.本文中,重点对微服务体系中的服务发现注册中心进行详细说明.本篇中的注册中心,采用Netf ...

  7. 【转】轻松搞定FTP之FlashFxp全攻略

    转载网址:http://www.newhua.com/2008/0603/39163.shtml 轻松搞定FTP之FlashFxp全攻略 导读: FlashFXP是一款功能强大的FXP/FTP软件,融 ...

  8. 【微服务】之三:从零开始,轻松搞定SpringCloud微服务-配置中心

    在整个微服务体系中,除了注册中心具有非常重要的意义之外,还有一个注册中心.注册中心作为管理在整个项目群的配置文件及动态参数的重要载体服务.Spring Cloud体系的子项目中,Spring Clou ...

  9. 【微服务】之七:轻松搞定SpringCloud微服务-API权限控制

    权限控制,是一个系统当中必须的重要功能.张三只能访问输入张三的特定功能,李四不能访问属于赵六的特定菜单.这就要求对整个体系做一个完善的权限控制体系.该体系应该具备针区分用户.权限.角色等各种必须的功能 ...

  10. 基于 CODING 轻松搞定持续集成

    点击观看视频教程 带你一步一步搞定 CODING 持续集成 持续集成加速软件交付 持续集成这个概念是由 Grady Booch 在 1991 年首次提出,随后成为了 DevOps 的核心实践之一.持续 ...

随机推荐

  1. WinDebug查看C#程序运行内存中的数据库连接字符串

    真巧,昨天刷到了大佬"一线码农"的视频,大概就是讲的有人找他破解一个混淆加密的数据库连接字符串,然后大佬也提供了方案就是用WinDebug查看内存中的数据.这其实本质上就是一个用W ...

  2. 1.4K star!几分钟搞定AI视频创作,这个开源神器让故事可视化如此简单!

    嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 story-flicks 是一个基于AI技术的自动化视频生成工具,能够将文字剧本快速转化为高 ...

  3. Lucas 定理简单证明

    前言 Oi wiki 和网上博客的证明都没完全看懂,最后还是自己推出来的..这里记录一下思路. Lucas 定理 对于质数 \(p\),$${n\choose m}\bmod p={\lfloor n ...

  4. WSL 安装配置 MySQL

    在 WSL 安装并配置 MySQL 与在 Ubuntu Server 安装配置 MySQL 一样的步骤.简要记录一下配置的过程. 安装 MySQL 参考微软官方文档[1]安装MySQL. sudo a ...

  5. FastAPI与Tortoise-ORM开发的神奇之旅

    title: FastAPI与Tortoise-ORM开发的神奇之旅 date: 2025/05/05 00:15:48 updated: 2025/05/05 00:15:48 author: cm ...

  6. MySQL之"数据库中没有就创建,有就修改"ON DUPLICATE KEY UPDATE

    一.场景 当你想存入一条数据到扩展表中(主表下附表),但这个扩展表并非一定会创建,就会让其工程逻辑复杂化 (也就是说:有可能创建主表数据的同时不会创建扩展表数据,这样就会照成你想修改的时候,扩展表本身 ...

  7. Razor路由相关

    1.赋予参数 @page "{id}" @model RazorTest.Pages.TestBModel @{ } <p>TestBId is @Model.Test ...

  8. length与capacity

    package javaBasic; public class DifferenceLengthCapacity { public static void main(String[] args) { ...

  9. Partition to K Equal Sum Subsets——LeetCode进阶路

    原题链接https://leetcode.com/problems/partition-to-k-equal-sum-subsets/ 题目描述 Given an array of integers ...

  10. Faray 数列问题

    首先,Farey 数列 \(F_n\) 表示分母不超过 \(n\) 的所有既约真分数按大小顺序排列的集合,形式化来说 \[F_n = \left\{\frac{p}{q} \bigg\vert 0 & ...