新人程序员 Git 一站式指南

新入职的程序员小白,你的mt给你派了活,第一件事就是从 GitLab 或其它的代码仓库拉取代码,这时候你要配置你的 Git 工具,并且后续进行一系列的操作,这时是不是直接打开百度搜索 Git 常用命令或者直接问 AI 呢?如果你不是,那没关系,我是。

出现这一情况的本质还是对于 Git 常用命令不熟悉,所以本文总结了所有常用的 Git 配置及命令。

本文章将持续总结更新开发中遇到的 Git 场景

一、初始化Git配置

配置用户名和邮箱

用户名和邮箱用于往后代码仓库中你的标识

bash 复制代码
git config --global user.name "你的姓名"
git config --global user.email "你的公司邮箱"

配置SSH密钥

对于稍微专业一点的公司,配置 SSH 密钥来访问 Git 仓库是必须的

SSH 是一种网络加密协议,用于访问不安全的或陌生的网络环境,进行远程登录或者网络资源的交互等。在 Git 中,用于安全的验证你和远程仓库之间的连接

SSH 采用非对称加密,熟悉计算机网络的同学应当知道,所谓非对称加密就是公钥加密、私钥解密的一种机制

  • ​私钥 (id_rsa)​:保存在你的本地计算机上,必须严格保密
  • ​公钥 (id_rsa.pub)​:可以安全地分享,添加到 Git 服务器或托管平台

下面是 Git 关联密钥的详细步骤:

1.检查现有的SSH 密钥

bash 复制代码
ls -al ~/.ssh

查看是否存在以下文件:

  • id_rsa (私钥)
  • id_rsa.pub (公钥)

2.生成新的SSH密钥对(如果没有)

bash 复制代码
ssh-keygen -t ed25519 -C "your_email@example.com" # ed25519算法
# 或
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" # RSA算法,系统较旧可能需要

​参数说明​​:

  • -t 指定密钥类型
  • -b 指定密钥位数
  • -C 添加注释(通常用邮箱)

3.生成过程中的交互

系统会提示:

  1. 输入保存密钥的文件路径(直接回车使用默认位置)
  2. 输入密码(可选,为密钥添加额外保护)

4.启动SSH代理并添加密钥

bash 复制代码
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

5.复制公钥到剪贴板

Linux/macOS:

bash 复制代码
cat ~/.ssh/id_ed25519.pub | xclip -selection clipboard
# 或
cat ~/.ssh/id_ed25519.pub

Windows (PowerShell):

powershell 复制代码
Get-Content ~.ssh\id_ed25519.pub | clip

6. 将公钥添加到 Git 平台

不同的代码托管平台方法可能不同,但这步很简单,你一定会

7. 测试 SSH 连接

bash 复制代码
ssh -T git@github.com

对于 GitHub,成功会显示:

bash 复制代码
Hi username! You've successfully authenticated...

如果一切顺利,你的 Git 配置关联仓库就做好了,下面你就可以拉取远程仓库的代码,进行本地开发啦!

二、Git常用命令

1.基础操作

1.1 初始化与克隆

bash 复制代码
git init                  # 初始化 git
git clone <remote_url>    # 拉取远程仓库代码,并自动关联远程分支

1.2 查看状态与历史

一般也不会用,因为现在大部分编辑器都支持直接看到

bash 复制代码
git status                # 查看工作区/暂存区状态
git log                   # 查看提交历史(按时间倒序)
git log --oneline         # 简洁版提交历史
git log --graph           # 图形化显示分支历史
git show <commit_id>      # 查看某次提交的详细内容

1.3 提交更改

堪称最最最常用的了,百分之99的程序员都会在自己的分支上开发完之后添加到暂存区、再提交到本地仓库的步骤

bash 复制代码
git add <file>            # 添加文件到暂存区
git add .                 # 添加所有修改到暂存区
git commit -m "message"   # 提交暂存区内容到本地仓库
git commit --amend        # 修改最近一次提交(可修改消息或追加文件)

1.4 撤销操作

回滚工作区的修改编辑器也支持,但增加到暂存区和提交到本地仓库后回滚也很常用。比如你刚刚 commit 到本地仓库,发现有段代码有小错误,这时候回滚是必要的

bash 复制代码
git restore <file>        # 撤销工作区的修改(未add)
git restore --staged <file> # 撤销暂存区的修改(已add)
git reset --soft HEAD^    # 撤销提交但保留修改(回退到暂存区)
git reset --hard HEAD^    # 彻底回退到上一次提交(慎用!)

2.分支管理

2.1 基础分支操作

bash 复制代码
git branch                # 查看本地分支
git branch <name>         # 创建新分支
git checkout <branch>     # 切换到分支
git switch <branch>       # (Git 2.23+) 更安全的切换命令
git merge <branch>        # 合并指定分支到当前分支
git branch -d <branch>    # 删除本地分支(已合并)
git branch -D <branch>    # 强制删除未合并的分支

2.2 远程分支同步

bash 复制代码
git fetch origin          # 拉取远程分支信息(不自动合并)
git pull origin <branch>  # 拉取并合并远程分支(= fetch + merge)
git push origin <branch>  # 推送本地分支到远程
git push -d origin <branch> # 删除远程分支
命令 是否下载远程数据 是否修改本地代码 是否自动合并 适用场景
git fetch ✅ 是 ❌ 否 ❌ 否 仅检查远程更新,不修改本地代码
git merge ❌ 否 ✅ 是 ❌ 需手动 手动合并分支或提交
git pull ✅ 是 ✅ 是 ✅ 是 快速同步远程代码(自动合并)

2.3 解决冲突

合并冲突时手动编辑文件,标记为 <<<<<<< HEAD>>>>>>> branch 的部分需人工处理

解决后执行:

bash 复制代码
git add <file>          # 标记冲突已解决
git commit              # 完成合并提交

合并分支

这是很常见的场景,团队接到新的项目需求,我们分到了一个需求开发,往往都是基于一个 main 分支去创建新分支feature,这时两个分支的提交记录都是一样的,在我们开发后提交代码后,feature 分支便与 main 不同了。

在这个总的项目需求开发过程中,你的同时排期不同会有很多的 feature 分支提 PR(Pull Request) 去合并分支到 main 这会导致你自己的分支与 main 是不同的,这时候去合并分支由于二者的提交记录不同,是一定会造成冲突的,这就需要我们手动的去编辑文件解决冲突

这也是为什么建议在开发中经常性的 git pull 你的主分支代码,以利于开发结束在最后合并的时候减少冲突

3.高级操作

3.1 暂存临时修改

当你需要合并远程分支,但希望本地工作区刚做的修改不影响你的操作的话,git stash临时存储绝对是不错的选择

bash 复制代码
git stash                 # 临时保存工作区修改
git stash pop             # 恢复最近一次暂存的修改
git stash list            # 查看所有暂存记录

3.2 标签管理

可能并不常用

bash 复制代码
git tag v1.0              # 创建轻量标签
git tag -a v1.0 -m "msg"  # 创建含注释的标签
git push origin --tags    # 推送所有标签到远程

3.3 变基

bash 复制代码
git rebase <branch>       # 将当前分支变基到目标分支
git rebase -i HEAD~3      # 交互式变基(合并/修改提交历史)

三、团队操作规范

大部分团队可能都是这样的规范

1.commit消息规范

  • feat: 添加用户登录功能
  • fix: 修复支付接口404错误
  • docs: 更新API文档

2.分支策略

  • main/master:生产环境代码
  • develop:开发主分支
  • feature/xxx:功能开发分支
  • hotfix/xxx:紧急修复分支
相关推荐
Albert_Lsk6 小时前
【2025/07/11】GitHub 今日热门项目
人工智能·开源·github·开源协议
心.c7 小时前
后台管理系统-权限管理
javascript·react.js·github
一点一木8 小时前
🚀 2025 年 06 月 GitHub 十大热门项目排行榜 🔥
前端·人工智能·github
寻月隐君9 小时前
Rust 错误处理终极指南:从 panic! 到 Result 的优雅之道
后端·rust·github
叶怀生10 小时前
Github创建仓库并通过VS Code推送项目
github
程序员的世界你不懂10 小时前
IDE 关联 Git 操作
ide·git
weixin_4284984911 小时前
Git Submodule 介绍和使用指南
git
ai小鬼头21 小时前
AIStarter新版重磅来袭!永久订阅限时福利抢先看
人工智能·开源·github
如何原谅奋力过但无声21 小时前
上传GitHub步骤(自用版)
github