文章目录
- 前言
- [Git 实战指南:从入门到精通,以 Leetcode100 仓库为例](#Git 实战指南:从入门到精通,以 Leetcode100 仓库为例)
-
- 引言
- [一、Git 环境准备](#一、Git 环境准备)
-
- [1.1 安装 Git](#1.1 安装 Git)
- [1.2 配置 Git](#1.2 配置 Git)
- [二、获取 Leetcode100 仓库](#二、获取 Leetcode100 仓库)
-
- [2.1 克隆远程仓库](#2.1 克隆远程仓库)
- [2.2 了解仓库结构](#2.2 了解仓库结构)
- 三、本地仓库基本操作
-
- [3.1 查看仓库状态](#3.1 查看仓库状态)
- [3.2 跟踪新文件](#3.2 跟踪新文件)
- [3.3 提交更改](#3.3 提交更改)
- [3.4 查看提交历史](#3.4 查看提交历史)
- [3.5 撤销修改](#3.5 撤销修改)
- 四、分支管理
-
- [4.1 查看分支](#4.1 查看分支)
- [4.2 创建新分支](#4.2 创建新分支)
- [4.3 在分支上开发](#4.3 在分支上开发)
- [4.4 合并分支](#4.4 合并分支)
- [4.5 删除分支](#4.5 删除分支)
- 五、远程仓库操作
-
- [5.1 查看远程仓库](#5.1 查看远程仓库)
- [5.2 拉取远程更新](#5.2 拉取远程更新)
- [5.3 推送本地更改](#5.3 推送本地更改)
- [5.4 解决冲突](#5.4 解决冲突)
- [六、实战案例:为 Leetcode100 仓库贡献代码](#六、实战案例:为 Leetcode100 仓库贡献代码)
- [七、Git 高级操作](#七、Git 高级操作)
-
- [7.1 stash 暂存工作区](#7.1 stash 暂存工作区)
- [7.2 标签管理](#7.2 标签管理)
- [7.3 撤销提交](#7.3 撤销提交)
- 八、常见问题及解决方案
- 九、总结
前言
- 若对您有帮助的话,请点赞收藏加关注哦,您的关注是我持续创作的动力!有问题请私信或联系邮箱:funian.gm@gmail.com
Git 实战指南:从入门到精通,以 Leetcode100 仓库为例
引言
在当今的软件开发领域,版本控制是一项不可或缺的技能。Git 作为最流行的分布式版本控制系统,被广泛应用于各种规模的项目中。本文将以 Leetcode100 仓库(https://github.com/Nian-Fu/Leetcode100.git)为实例,详细介绍 Git 的核心操作,帮助读者快速掌握 Git 的使用方法,提升开发效率。
无论是刷题记录、项目开发还是团队协作,掌握 Git 都能让你在代码管理方面游刃有余。让我们开始这段 Git 学习之旅吧!
一、Git 环境准备
1.1 安装 Git
首先,我们需要在本地安装 Git。根据你的操作系统,选择相应的安装包:
- Windows:访问 Git 官网 下载安装程序,按照向导完成安装
- macOS:可以使用 Homebrew 安装
brew install git
- Linux:使用系统包管理器,如 Ubuntu 可使用
sudo apt-get install git
安装完成后,打开终端(命令提示符),输入以下命令验证安装是否成功:
bash
git --version
如果显示类似 git version 2.34.1
的信息,则说明安装成功。
1.2 配置 Git
安装完成后,需要进行基本配置,设置用户名和邮箱:
bash
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱地址"
这些信息将出现在你的提交记录中,建议使用与 GitHub 账号一致的信息。
可以使用以下命令查看配置信息:
bash
git config --list
二、获取 Leetcode100 仓库
2.1 克隆远程仓库
要开始使用 Leetcode100 仓库,首先需要将其克隆到本地。打开终端,导航到你想要存放仓库的目录,执行以下命令:
bash
git clone https://github.com/Nian-Fu/Leetcode100.git
执行完成后,当前目录下会出现一个名为 Leetcode100
的文件夹,这就是克隆到本地的仓库。
进入仓库目录:
bash
cd Leetcode100
2.2 了解仓库结构
克隆完成后,我们可以查看仓库的基本结构:
bash
# 查看目录内容
ls -la
你会看到一些常见的文件和文件夹,包括解题代码文件、README.md 等。特别注意 .git
文件夹,这是 Git 用来管理仓库的核心目录,不要随意修改其中的内容。

三、本地仓库基本操作
3.1 查看仓库状态
在进行任何操作前,了解当前仓库的状态非常重要:
bash
git status
这个命令会显示哪些文件被修改过,哪些文件还未被跟踪等信息。
3.2 跟踪新文件
如果你在仓库中创建了新的解题文件(例如 two_sum.py
),需要告诉 Git 跟踪这个文件:
bash
git add two_sum.py
如果要跟踪所有新文件和修改过的文件,可以使用:
bash
git add .
3.3 提交更改
当你完成一部分工作后,需要将更改提交到本地仓库:
bash
git commit -m "添加两数之和的解题代码"
-m
后面的内容是提交说明,应该简明扼要地描述本次提交的内容。良好的提交说明有助于日后查看历史记录时快速理解每次变更的目的。
3.4 查看提交历史
要查看仓库的提交历史,可以使用:
bash
git log
这会显示所有提交记录,包括提交者、日期、提交说明等信息。
如果希望以更简洁的方式查看,可以使用:
bash
git log --oneline
3.5 撤销修改
如果对某个文件的修改不满意,可以撤销修改:
bash
git checkout -- filename.py
注意:这个命令会丢弃工作区中对文件的所有修改,恢复到最近一次提交或暂存的状态,请谨慎使用。
如果已经将修改暂存(执行了 git add
),需要先取消暂存:
bash
git reset HEAD filename.py
然后再执行 git checkout
命令。
四、分支管理
分支是 Git 最强大的功能之一,它允许你在不影响主代码的情况下进行开发。
4.1 查看分支
查看当前所有分支:
bash
git branch
当前所在的分支会以 *
标记。
4.2 创建新分支
在 Leetcode100 仓库中,如果你想为某道题的解法创建一个新的分支进行开发,可以使用:
bash
git checkout -b solution-problem20
这个命令创建并切换到名为 solution-problem20
的分支。也可以分两步完成:
bash
git branch solution-problem20 # 创建分支
git checkout solution-problem20 # 切换分支
4.3 在分支上开发
在新分支上进行开发,添加解题代码,然后提交:
bash
# 编辑文件...
git add .
git commit -m "完成第20题的解题代码"
4.4 合并分支
当你在分支上完成开发并确认无误后,可以将其合并到主分支(通常是 main
或 master
):
bash
# 切换到主分支
git checkout main
# 合并分支
git merge solution-problem20
4.5 删除分支
合并完成后,如果不再需要该分支,可以将其删除:
bash
git branch -d solution-problem20
如果分支尚未合并,使用 -D
强制删除:
bash
git branch -D solution-problem20
五、远程仓库操作
5.1 查看远程仓库
查看当前关联的远程仓库:
bash
git remote -v
对于克隆的 Leetcode100 仓库,通常会显示:
origin https://github.com/Nian-Fu/Leetcode100.git (fetch)
origin https://github.com/Nian-Fu/Leetcode100.git (push)
origin
是远程仓库的默认名称。
5.2 拉取远程更新
在多人协作或多设备开发时,需要经常拉取远程仓库的最新更改:
bash
git pull origin main
这个命令会将远程 main
分支的更新拉取到本地并合并。
5.3 推送本地更改
当你在本地完成开发并提交后,需要将更改推送到远程仓库:
bash
git push origin main
如果是推送新创建的分支:
bash
git push -u origin solution-problem20
-u
选项会将本地分支与远程分支关联起来,后续推送可以简化为 git push
。
5.4 解决冲突
在多人协作中,冲突是难免的。当 git pull
或 git merge
遇到冲突时,Git 会提示哪些文件有冲突。
打开这些文件,你会看到类似以下的标记:
<<<<<<< HEAD
// 你的代码
=======
// 其他人的代码
>>>>>>> branch-name
手动编辑这些文件,解决冲突后,再进行提交:
bash
git add .
git commit -m "解决合并冲突"
六、实战案例:为 Leetcode100 仓库贡献代码
下面我们通过一个完整的流程,演示如何为 Leetcode100 仓库贡献一道新题的解法。
-
克隆仓库(如果还没有克隆):
bashgit clone https://github.com/Nian-Fu/Leetcode100.git cd Leetcode100
-
确保本地仓库是最新的:
bashgit pull origin main
-
创建新分支:
bashgit checkout -b solution-problem30
-
创建并编辑解题文件 ,例如
problem30.py
,编写解题代码。 -
查看更改:
bashgit status git diff
-
暂存并提交更改:
bashgit add problem30.py git commit -m "添加第30题的解题代码,使用滑动窗口方法"
-
推送分支到远程仓库:
bashgit push -u origin solution-problem30
-
在 GitHub 上创建 Pull Request,等待仓库维护者审核并合并你的代码。
七、Git 高级操作
7.1 stash 暂存工作区
当你正在一个分支上开发,需要切换到另一个分支但又不想提交当前更改时,可以使用 stash
:
bash
# 暂存当前工作区
git stash
# 查看所有暂存
git stash list
# 恢复最近的暂存
git stash apply
# 恢复并删除暂存
git stash pop
7.2 标签管理
对于重要的版本,可以创建标签进行标记:
bash
# 创建标签
git tag v1.0
# 查看所有标签
git tag
# 推送标签到远程
git push origin v1.0
7.3 撤销提交
如果需要撤销最近的一次提交,但保留更改:
bash
git reset --soft HEAD~1
如果要彻底撤销最近的提交,丢弃更改:
bash
git reset --hard HEAD~1
注意:
--hard
选项会丢弃工作区的更改,使用前请确保这些更改不再需要。
八、常见问题及解决方案
-
忘记提交说明 :
执行
git commit
后如果忘记添加-m
参数,可以在打开的编辑器中输入提交说明,保存并退出即可。 -
提交到了错误的分支:
bash# 保存当前更改 git stash # 切换到正确的分支 git checkout correct-branch # 应用更改 git stash pop # 提交 git commit -m "你的提交说明"
-
需要修改最近一次提交:
bashgit commit --amend
-
误删文件:
bashgit checkout -- 被删除的文件名
九、总结
本文以 Leetcode100 仓库为实例,详细介绍了 Git 的基本操作和一些高级用法,包括环境配置、仓库克隆、文件跟踪、提交更改、分支管理、远程仓库交互等内容。
掌握 Git 不仅能帮助你更好地管理自己的代码,也是参与开源项目和团队协作的必备技能。Git 的功能远不止本文介绍的这些,建议大家在实际使用中不断探索和学习。
希望本文能为你的 Git 学习之旅提供帮助,祝大家在 Leetcode100 仓库的学习和贡献中取得进步!
如果你有任何问题或建议,欢迎在评论区留言讨论。