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. 在Avalonia/C#中使用依赖注入过程记录

    前言 使用依赖注入可以让我们的程序变得更加好维护与测试. 今天分享的是在Avalonia/C#中使用依赖注入. 我准备了一个简单的不使用依赖注入与使用依赖注入的demo. 该demo已上传至GitHu ...

  2. cesium裁切面实践

    cesium裁切面实践:沙盒地址 (打不开的自行科学访问) 裁切面法线方向指向保留的部分,本案例通过法线配合unionClippingRegions参数实现相比官方案例没有的:多裁切面互裁,裁两边留中 ...

  3. 基础 DP 做题记录

    Luogu P1192 台阶问题 Link 简要题意: 给定台阶数 \(n\le10^5\) 和一步至多跨越台阶数 \(k\le10^2\) ,初始在 \(0\) 级,求方案数 \(\pmod {10 ...

  4. redis 中文乱码

    查询数据时中文乱码 解决方法: 使用 ./redis-cli 登录的时候加上 --raw参数 ./redis-cli --raw

  5. CatBoost算法原理及Python实现

    一.概述   CatBoost 是在传统GBDT基础上改进和优化的一种算法,由俄罗斯 Yandex 公司开发,于2017 年开源,在处理类别型特征和防止过拟合方面有独特优势.   在实际数据中,存在大 ...

  6. Nacos源码—5.Nacos配置中心实现分析

    大纲 1.关于Nacos配置中心的几个问题 2.Nacos如何整合SpringBoot读取远程配置 3.Nacos加载读取远程配置数据的源码分析 4.客户端如何感知远程配置数据的变更 5.集群架构下节 ...

  7. File与IO流之File练习

    创建文件夹,并在其中创建文件 package Java_test; import java.io.*; public class Test { public static void main(Stri ...

  8. Matlab使用yalmip与cplex12.10

    本文同步发布于我的网站 软件版本 MATLAB R2023b yalmip 2021-03-31 CPLEX 12.10 不求新,但求适配.此版本组合经过我在两台电脑上成功安装 下载链接 链接:htt ...

  9. Re:prime 关于质数的算法

    Re:prime 关于质数的所有算法 绪言 所有代码若无说明,均采用快读模板 关于质数,无非就两大类: 判断一个数字是不是质数 找出[1,n]中所有的质数 先讲1: Judge 判断x是不是质数 根据 ...

  10. 二叉排序树BST及CRUD操作

    摘要 构造一颗二叉排序树(也叫二叉搜索树,BST,Binary Search Tree)十分简单.一般来讲,大于根节点的放在根节点的右子树上,小于根节点的放在根节点的左子树上(如果等于根节点,则可视情 ...