Git 与 GitHub 新电脑配置指南(从零开始)

新电脑第一次

适用:新电脑第一次装 Git、连 GitHub。以 Windows 为主,macOS/Linux 差异处单独标注。


一、先搞懂概念:Git 和 GitHub 是什么

Git GitHub
是什么 分布式版本控制工具(本地软件) 基于 Git 的代码托管平台(网站)
作用 本地记录文件的每次修改,可回滚、开分支 代码存云端,备份、多人协作
关系 没有 Git 就没有 GitHub GitHub 只是"远程仓库"之一(还有 Gitee、GitLab)

一句话:Git 管本地版本,GitHub 管远程托管。装好 Git 后还要配置身份和认证,才能和 GitHub 通信。


二、安装 Git

Windows

方式一:官网安装包(最稳)

  1. 打开 https://git-scm.com/download/win 下载 64-bit 版

  2. 双击安装,一路 Next,注意这几项建议:

    • Select Components:勾选 Git Bash Here / Git GUI Here(右键菜单快捷入口)
    • Default branch name:选 main(或保持默认,稍后用命令改)
    • Adjusting your PATH:选默认 "Git from the command line and also from 3rd-party software"
    • Line ending conversions:Windows 保持默认(Checkout Windows-style,即 core.autocrlf=true,避免换行符问题)
  3. 装完打开任意终端(PowerShell / CMD / Git Bash),验证:

    复制代码
    git --version

方式二:winget(命令行一条装完)

复制代码
winget install --id Git.Git -e --source winget

官网下载慢可换清华大学镜像:https://mirrors.tuna.tsinghua.edu.cn/github-release/git-for-windows/git/,选最新版 Assets 里的 .exe。

macOS

复制代码
xcode-select --install        # 安装 Command Line Tools(自带 Git)
# 或已装 Homebrew 的话:brew install git

Linux(Debian/Ubuntu)

复制代码
sudo apt update && sudo apt install git

验证安装

复制代码
git --version    # 例:git version 2.4x.x.windows.1

三、首次配置身份(必做)

Git 每次提交都要记录"谁改的",所以必须告诉它名字和邮箱。邮箱建议用 GitHub 注册邮箱,这样提交会自动关联到你的账号。

复制代码
git config --global user.name "你的名字"
git config --global user.email "你的GitHub邮箱@example.com"

推荐一起配的:

复制代码
git config --global init.defaultBranch main      # 新仓库默认分支叫 main
git config --global credential.helper manager    # Windows 凭据管理器(Git for Windows 自带,自动记住 Token/密码)

查看当前全部配置:

复制代码
git config --global --list

配置保存在用户目录的 .gitconfig 文件里,改错重跑命令覆盖即可。


四、连接 GitHub:两种认证方式

GitHub 从 2021 年起已不支持密码推送 ,必须用 SSH 密钥或 Token。二选一,推荐 SSH

方式 A:SSH 密钥(推荐,一次配好长期用)

1. 检查是否已有密钥

复制代码
ls ~/.ssh

已有 id_ed25519 / id_rsa 且不想换,可跳过生成,直接用旧公钥。

2. 生成新密钥

复制代码
ssh-keygen -t ed25519 -C "你的GitHub邮箱@example.com"

一路回车即可(也可以设 passphrase,更安全,但每次用要输;可配合 ssh-agent 免输)。

3. 查看并复制公钥

复制代码
# Windows PowerShell:
type $env:USERPROFILE\.ssh\id_ed25519.pub | clip

# Git Bash / macOS / Linux:
cat ~/.ssh/id_ed25519.pub

4. 添加到 GitHub

GitHub → 右上角头像 → Settings → 左侧 SSH and GPG keysNew SSH key → Title 填个标识(如 "新电脑")→ Key 粘贴公钥 → Add SSH key

5. 测试连接

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

看到 Hi 你的名字! You've successfully authenticated, but GitHub does not provide shell access. 即成功。

方式 B:HTTPS + Personal Access Token(临时/偶尔用)

  1. GitHub → Settings → Developer settingsPersonal access tokens → Tokens (classic) → Generate new token
  2. 勾选 repo 权限,生成后立刻复制保存(只显示一次,丢了要重新生成)
  3. clone 用 HTTPS 地址;推送时用户名填 GitHub 用户名,密码框填 Token

国内网络问题:连 GitHub 慢/失败

22 端口被干扰时改用 443 端口。编辑 ~/.ssh/config(没有就新建):

复制代码
Host github.com
  Hostname ssh.github.com
  Port 443
  User git

再跑 ssh -T git@github.com 验证。


五、第一次跑通流程(clone → 改 → 提交 → 推送)

以把 GitHub 上的仓库克隆到新电脑为例:

复制代码
git clone git@github.com:用户名/仓库名.git       # SSH 方式
# 或
git clone https://github.com/用户名/仓库名.git    # HTTPS 方式

cd 仓库名
# ......修改文件......

git status                  # 看哪些文件变了
git add .                   # 暂存所有改动
git commit -m "描述改了什么"  # 本地提交
git push                    # 推送到 GitHub

新仓库第一次推送要指定上游分支:

复制代码
git push -u origin main

日常拉取远程最新改动:

复制代码
git pull

六、常用辅助

  • GitHub Desktop :官方图形界面客户端,不熟命令行的场景适用(https://desktop.github.com),登录后自动接管 clone/push,配置好 SSH 后同样可用
  • 多账号管理 :在 ~/.ssh/config 里用不同 Host 别名区分不同 GitHub 账号,配合各自的密钥文件
  • 图形查看历史 :VS Code 自带 Git 面板,或 gitk / Git GUI

七、Git 基础操作

7.1 核心概念:三个区

复制代码
工作区(你正在编辑的文件) → git add → 暂存区(staging) → git commit → 版本库(本地历史) → git push → 远程仓库(GitHub)
  • 工作区:你看到的、正在编辑的文件
  • 暂存区add 进去、准备打包提交的改动
  • 版本库commit 后的历史记录(存在 .git 目录里)

每次提交都是三步曲:改文件 → add → commit。只有 commit 过的改动才算进入版本历史,才能 push。

7.2 日常提交

复制代码
git status            # 先看状态:哪些文件改了、哪些已暂存
git diff              # 看工作区改了什么(未暂存的部分)
git diff --staged     # 看暂存区改了什么(add 之后、commit 之前)
git add 文件名         # 只暂存某个文件
git add .             # 暂存所有改动(提交前先 status 确认,别把不该提交的加进来)
git commit -m "说明"   # 提交,信息写清"做了什么",别写 update/111
git log --oneline     # 看提交历史,一行一条

提交信息写错了且还没 push

复制代码
git commit --amend -m "新的说明"    # 改写最近一次提交

7.3 分支(Git 最核心的能力)

分支 = 独立的开发线,互不干扰。开发新功能、修 bug 都建议开分支,做完再合并回主分支。

复制代码
git branch                # 查看本地分支(* 表示当前所在)
git branch 新分支名         # 新建分支
git switch 分支名           # 切换分支(老命令:git checkout 分支名)
git switch -c 新分支名      # 新建并切换(等价 git checkout -b)
git branch -d 分支名        # 删除已合并的分支

典型流程:

复制代码
git switch -c feature/登录页   # 开功能分支
# ......开发、提交......
git switch main               # 切回主分支
git merge feature/登录页        # 合并
git branch -d feature/登录页    # 合并完删掉

7.4 合并与冲突

  • git merge 分支名:把另一个分支的改动合到当前所在分支

  • 冲突:两个分支改了同一处,Git 无法自动决定,会停下来让你手动处理。冲突文件里会出现标记:

    <<<<<<< HEAD
    当前分支的内容

    被合并分支的内容

    feature/登录页

处理三步:

  1. 打开文件,手动保留想要的 ,删掉 <<<<<<< / ======= / >>>>>>> 三行标记
  2. git add 冲突文件
  3. git commit(不带 -m 用默认合并说明)

不想合并了:git merge --abort 退回合并前。

7.5 撤销与回滚(按阶段选命令)

场景 命令 效果
工作区改乱了想放弃 git restore 文件名 丢弃未暂存改动(不可找回
已 add 没 commit,想撤出暂存 git restore --staged 文件名 退回工作区,内容保留
已 commit 没 push,想撤销 git reset --soft HEAD~1 撤销提交,改动留在暂存区
已 push,想反悔 git revert 提交号 生成一个反向提交,安全
手头改动没做完,想先干别的 git stash / git stash pop 临时收起 / 取回改动

红线reset 会改写历史,只对未推送 的提交用;已推送的必须用 revert,否则队友拉取会乱。

7.6 远程协作

复制代码
git clone <地址>          # 首次把远程仓库整个拉下来
git pull                 # 拉取远程最新改动(fetch + merge,相当于同步)
git fetch                # 只下载不合并,先看看远程有什么
git push                 # 把本地提交推上去
git remote -v            # 查看远程仓库地址
git push -u origin main  # 首次推送,绑定上游分支
  • 每次 push 前先 git pull,避免 rejected(见排查表)
  • pull 时遇到冲突按 7.4 处理

7.7 忽略文件:.gitignore

仓库根目录建 .gitignore,写进去的文件/目录不会被提交。密钥、临时文件、依赖包必须忽略

复制代码
# 示例
node_modules/
config.local.json
*.log
.DS_Store

已提交过的文件加进 .gitignore 不会生效,要先 git rm --cached 文件名 把它移出版本管理(文件本身还在)。

7.8 命令速查表

操作 命令
查看状态 git status
查看改动 git diff / git diff --staged
暂存 git add 文件 / git add .
提交 git commit -m "说明"
看历史 git log --oneline
新建并切换分支 git switch -c 分支名
合并 git merge 分支名
放弃工作区改动 git restore 文件
撤销最近提交(未推送) git reset --soft HEAD~1
反悔已推送提交 git revert 提交号
临时收工 git stash / git stash pop
拉取 git pull
推送 git push

八、常见报错排查

报错 / 现象 原因 解决办法
Permission denied (publickey) SSH 公钥没加或加错 重走第四步,确认 ssh -T git@github.com 通过
Support for password authentication was removed 还在用密码推送 改用 PAT 或 SSH 密钥
fatal: unable to access 'https://...' 网络不通 / 代理问题 检查网络,配代理或改用 SSH
remote: Repository not found 仓库不存在 / 没权限 确认仓库名大小写、是否已加协作者
! rejected (fetch first) 本地落后于远程 git pullgit push
提交记录不显示头像 邮箱与 GitHub 注册邮箱不一致 user.email 为注册邮箱

九、新电脑配置清单(完成后逐项打勾)

  • git --version 有输出(Git 装好)
  • git config 已设置 user.name / user.email
  • ~/.ssh 里有密钥,公钥已添加到 GitHub
  • ssh -T git@github.com 显示认证成功
  • 试 clone 一个自己的仓库,修改后 push 成功
相关推荐
云空10 小时前
《VPython 相关的 GitHub 仓库地址清单》
github·可视化·vpython
Jeanyia11 小时前
GitLab 配套 Git 常用命令
git·gitlab
小弥儿13 小时前
GitHub今日热榜 | 2026-08-14:OSINT情报工具回流,本地AI赛道升温
人工智能·学习·开源·github
10mAh14 小时前
【Git】误删分支、reset --hard 后提交丢了怎么办?——reflog、fsck 与安全恢复实战
数据库·git·安全·回归
Lydro16 小时前
CentOS 7 安装高版本git
git·centos 7
guwentian1 天前
Git Worktree 实战:用并行多 Agent 把开发提速 N 倍
大数据·git·elasticsearch·wroktree
不吃鱼的羊1 天前
Git识别未修改的文件有修改
git
Shell运维手记1 天前
Linux 常用基础命令学习笔记
linux·运维·笔记·学习·算法·github
码流怪侠1 天前
StereoCrafter 源码级深度拆解:腾讯如何把 2D 视频“抠“成 3D
github·音视频开发·webvr