Git 从入门到精通

Git 从入门到精通

前言

Git 作为当今最流行的分布式版本控制系统,已成为每一位开发者必备的技能。无论你是刚入门的新手,还是希望系统梳理知识的中级开发者,本文都将带你全面掌握 Git 的核心命令与最佳实践。

Git 的设计哲学简单而强大:快速、分布式、支持非线性开发。理解这一点,将帮助你更好地运用它的各项功能。

一、环境配置:搭建你的工作空间

在开始使用 Git 之前,首先需要完成基础配置。这些信息将伴随你的每一次代码提交。

1.1 基础身份配置

# 配置全局用户名和邮箱(必须) git config --global user.name "你的名字" git config --global user.email "[email protected]" # 查看当前配置 git config --list # 针对特定仓库配置(去掉 --global 即可) git config user.name "项目特定名字"

最佳实践: 使用与代码托管平台(GitHub/GitLab)一致的邮箱,这样提交记录才能正确关联到你的账号。

1.2 提升效率的别名配置

# 为常用命令设置快捷方式 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 --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" # 现在你可以使用 git st 代替 git status,git lg 查看漂亮的日志

二、仓库的生命周期管理

2.1 创建与克隆

# 方式一:在现有目录初始化 mkdir my-project cd my-project git init # 方式二:克隆远程仓库(更常见) git clone https://github.com/username/repository.git # 克隆时指定本地文件夹名称 git clone https://github.com/username/repository.git my-folder # 克隆特定分支 git clone -b develop https://github.com/username/repository.git

技术细节:git init 会创建一个 .git 隐藏目录,这就是 Git 的对象数据库,存储着项目的完整历史记录。

2.2 状态检查:你的指南针

git status

git status 是你在 Git 世界中的指南针,它会告诉你:

  • 当前所在分支
  • 工作区有哪些修改未暂存
  • 暂存区有哪些修改待提交
  • 哪些文件未被 Git 跟踪

输出解读示例:

On branch main Your branch is up to date with 'origin/main'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: README.md Untracked files: (use "git add <file>..." to include in what will be committed) new-feature.py

三、核心工作流程:从编辑到提交

Git 的核心在于理解三个区域的协作关系:

┌─────────────────┐ git add ┌─────────────────┐ git commit ┌───────────────

Read more

Visual C++ 6.0中文版安装包下载教程及win11安装教程

本文分享的是Visual C++ 6.0(简称VC++6.0)中文版安装包下载及安装教程,关于win11系统下安装和使用VC++6.0使用问题解答,大家在安装使用的过程中会遇到不同的问题,如遇到解决不了的问题请给我留言! 一、安装包的下载 vc6.0安装包下载连接: https://pan.quark.cn/s/710dc0efe636 二、安装vc++6.0 1.鼠标右键解压到“VC++ 6.0”安装包,解压后如图所示: 2.双击Steup.exe,进行安装; 3.点击下一步 4.更改路径,建议不要安装在C盘(默认盘符),可以选择其他的盘符,点击浏览进行更改盘符。 5.选择C盘(默认盘或系统盘)以外的盘符。

By Ne0inhk
深入解剖STL map/multimap:接口使用与核心特性详解

深入解剖STL map/multimap:接口使用与核心特性详解

❤️@燃于AC之乐 来自重庆 计算机专业的一枚大学生 ✨专注 C/C++ Linux 数据结构 算法竞赛 AI 🏞️志同道合的人会看见同一片风景! 👇点击进入作者专栏: 《算法画解》 ✅ 《linux系统编程》✅ 《C++》 ✅ 🌟《算法画解》算法相关题目点击即可进入实操🌟 感兴趣的可以先收藏起来,请多多支持,还有大家有相关问题都可以给我留言咨询,希望希望共同交流心得,一起进步,你我陪伴,学习路上不孤单! 文章目录 * 前言(map系列容器概述) * 一、map类介绍 * 1.1 map的类模板声明 * 二、pair类型介绍 * 2.1 pair的结构定义 * 2.2 pair的使用要点 * 三、map的构造与迭代器 * 3.1 构造接口 * 3.2 迭代器接口 * 四、map的增删查操作

By Ne0inhk
C++ 多线程同步之原子操作(atomic)实战

C++ 多线程同步之原子操作(atomic)实战

C++ 多线程同步之原子操作(atomic)实战 💡 学习目标:掌握 C++ 标准库中原子操作的使用方法,理解原子操作与互斥锁的区别,能够在轻量级同步场景中高效解决数据竞争问题。 💡 学习重点:std::atomic 模板的常用接口、原子操作的特性、原子类型与普通类型的性能对比、原子操作的典型应用场景。 50.1 原子操作的引入背景 在 48 章我们学习了互斥锁,它通过阻塞线程的方式实现临界区保护。 但互斥锁存在上下文切换开销,在一些简单的同步场景中显得过于笨重。 比如对单个变量的自增、自减、赋值等操作,我们需要一种更轻量级的同步方案——原子操作。 ⚠️ 注意事项:原子操作仅适用于单个变量的简单同步,无法替代互斥锁实现复杂临界区的保护。 举个例子,使用互斥锁保护变量自增: #include<iostream>#include<thread>#include<mutex>usingnamespace std;

By Ne0inhk

《深入解析JVM》第五章:JDK 8之后版本的优化与JDK 25前瞻

本期内容为自己总结归档,基于JDK8,共分5章,本人遇到过的面试问题会⭐重点标记。 第一章:JVM架构全览 第二章:垃圾回收机制和GC算法 第三章:JVM类加载与Spring类加载 第四章:JVM 调优 第五章:JDK最新版本优化内容 (若有任何疑问,可在评论区告诉我,看到就回复) 第五章:JDK 8之后版本的核心优化与JDK 25前瞻 1. JDK版本演进路线与升级决策框架 Java在JDK 8之后进入了快速迭代周期。本系列文章重点分析的长期支持(LTS)版本是生产环境部署的基石,每个LTS都代表了Java发展的一个重要里程碑。JDK 25作为最新的LTS,标志着Java在简化开发、提升性能和支持现代硬件方面进入了新阶段。 1.1 升级决策的关键考量因素 技术选型决策流程: 2. JDK 11的核心优化:现代Java的基石 2.1 语言特性增强 局部变量类型推断(JEP 323): // JDK

By Ne0inhk