Windows + Mac 使用 GitHub 多设备同步代码操作手册
一、最终要实现什么
目标不是让 Windows 和 Mac 直接互相传文件,而是让 GitHub 做中转站:
Windows
↓ push
GitHub
↑↓
Mac
↑ pull
比如:
公司 Windows 修改代码
→ 上传 GitHub
→ 回家 Mac 下载最新版
→ Mac 继续修改
→ 上传 GitHub
→ 第二天 Windows 再下载最新版
以后日常真正需要记住的核心流程只有:
开始工作前:
git pull
修改文件……
工作结束:
git add .
git commit -m "说明这次改了什么"
git push
二、Git 和 GitHub 分别是什么
1.Git
Git 是安装在电脑上的版本管理软件。
它负责记录:
哪些文件发生了变化
每次保存了什么版本
谁提交了这个版本
什么时候提交的
可以把 Git 理解成“代码存档系统”。
例如:
版本1:项目刚创建
版本2:完成首页
版本3:增加产品页面
版本4:修复手机端菜单
以后即使改坏了,也能知道以前版本是什么样。
2.GitHub
GitHub 是网上的代码仓库。
它负责把 Git 管理的代码存到网上,让另外一台电脑也能拿到。
所以关系是:
项目文件
↓
Git 管理版本
↓
GitHub 存到网上
↓
另一台电脑下载
三、Windows 第一次安装 Git
打开:
https://git-scm.com/
下载 Git for Windows。
普通 Intel / AMD Windows 电脑选择:
x64 Setup
安装时大部分选项保持默认即可。
比较重要的是 PATH 设置,保持类似:
Git from the command line and also from 3rd-party software
这样 PowerShell、CMD、VS Code、Codex 等软件都能直接使用 git。
安装完成以后,关闭原来的终端,重新打开一个终端。
输入:
git --version
如果出现:
git version 2.xx.x
说明安装成功。
四、第一次让 Git 管理一个项目
假设项目位于:
C:\Users\Administrator\Desktop\测试
先进入项目:
cd "C:\Users\Administrator\Desktop\测试"
然后:
git init
如果看到:
Initialized empty Git repository...
说明成功。
git init 做了什么
它会在项目里面创建一个隐藏文件夹:
.git
结构大概变成:
测试
├── .git
├── ce.txt
├── src
└── 其他文件
.git 里面保存:
提交历史
版本信息
分支
GitHub 地址
Git 设置
所以:
git init
并不是上传代码。
它只是表示:
从现在开始,让 Git 管理这个项目。
五、第一次把文件加入 Git
先查看状态:
git status
如果看到:
Untracked files:
ce.txt
意思是:
Git 看见了这个文件,但是还没有把它加入版本管理。
执行:
git add ce.txt
如果需要一次加入项目里所有修改,可以:
git add .
这里的:
.
代表当前项目中的所有变化。
然后检查:
git status
如果出现:
Changes to be committed:
new file: ce.txt
说明这个文件已经进入“准备提交区”。
六、第一次提交版本
执行:
git commit -m "第一次提交"
这里:
commit
可以理解成正式建立一个存档点。
而:
-m "第一次提交"
是给这个版本写备注。
例如以后可以这样写:
git commit -m "完成首页"
或者:
git commit -m "修复手机菜单"
七、如果 Git 提示不知道你是谁
第一次提交时可能看到:
Please tell me who you are.
说明 Git 不知道提交者是谁。
设置名字:
git config --global user.name "你的名字"
例如:
git config --global user.name "Yepsoso"
设置邮箱:
git config --global user.email "你的GitHub邮箱"
例如:
git config --global user.email "example@gmail.com"
-global表示:
以后这台电脑上的 Git 项目默认都使用这个身份。
验证:
git config --global user.name
git config --global user.email
然后重新提交:
git commit -m "第一次提交"
八、把 master 改成 main
有些 Git 默认创建:
master
现在 GitHub 通常使用:
main
统一一下:
git branch -M main
检查:
git branch
如果看到:
* main
说明成功。
- 表示当前正在使用这个分支。
九、在 GitHub 创建仓库
登录 GitHub。
点击:
右上角 +
→ New repository
填写仓库名称,例如:
tongbu
如果项目不希望公开,选择:
Private
如果本地项目已经执行过 git init 和 git commit,创建 GitHub 仓库的时候:
不要创建 README。
不要自动创建 .gitignore****。
不要自动添加 License。
保持远程仓库为空。
创建完成后会得到类似地址:
https://github.com/Yepsoso/tongbu.git
十、把本地项目连接 GitHub
在本地项目终端执行:
git remote add origin https://github.com/Yepsoso/tongbu.git
意思是:
把这个 GitHub 仓库添加为远程仓库,并给它起名叫
origin。
验证:
git remote -v
正常情况下会看到:
origin https://github.com/Yepsoso/tongbu.git (fetch)
origin https://github.com/Yepsoso/tongbu.git (push)
其中:
fetch
代表下载。
push
代表上传。
十一、如果已经有 origin,怎么换 GitHub 地址
如果看到:
error: remote origin already exists.
不要再次执行 remote add。
如果需要换成另一个 GitHub 仓库:
git remote set-url origin https://github.com/Yepsoso/tongbu.git
然后检查:
git remote -v
十二、第一次上传 GitHub
执行:
git push -u origin main
意思分别是:
git push
= 上传
origin
= 上传到对应 GitHub 仓库
main
= 上传 main 分支
-u
= 记住本地 main 和 GitHub main 的关系
第一次成功以后,以后只需要:
git push
不需要每次重新写完整命令。
上传成功后打开 GitHub 仓库刷新。
如果文件已经出现,说明:
本地电脑
↓
GitHub
已经打通。
十三、GitHub Token 一定不要发给别人
GitHub 的 Personal Access Token(个人访问令牌,PAT)一般长得类似:
github_pat_xxxxxxxxxxxxx
它不是账号 ID。
也不是验证码。
它本质上相当于一个 GitHub 专用密码。
所以:
不要发到聊天里。
不要发给别人。
不要提交到 Git 仓库。
不要写进代码。
如果 Token 已经泄露:
GitHub
→ Settings
→ Developer settings
→ Personal access tokens
找到对应 Token,立即:
Delete / Revoke
然后重新生成新的。
十四、第二台电脑不要再 git init
假设 Windows 已经把项目上传到了:
https://github.com/Yepsoso/tongbu.git
现在要在 Mac 使用。
不要执行:
git init
因为远程仓库已经存在了。
正确做法是:
git clone https://github.com/Yepsoso/tongbu.git
clone 的作用是一次完成:
下载代码
+
下载 Git 历史
+
设置远程仓库
+
连接 main 分支
十五、Mac 第一次连接私有 GitHub 仓库
如果仓库是 Private,Mac 第一次可能出现:
Repository not found
很多时候并不是仓库真的不存在,而是:
Mac 还没有登录 GitHub,因此没有权限读取这个私有仓库。
可以使用 GitHub CLI 登录。
先检查:
gh --version
如果已经安装,执行:
gh auth login
然后选择:
GitHub.com
协议选择:
HTTPS
允许 Git 使用 GitHub 登录信息。
浏览器会打开 GitHub 授权页面。
确保登录的是正确账号:
Yepsoso
如果网页要求填写设备验证码,就回到 Mac 终端找到类似:
ABCD-EFGH
这样的验证码。
把终端里的验证码填到 GitHub 网页。
注意:
这个验证码:
- 不是邮箱验证码
- 不是 GitHub Token
- 是 GitHub CLI 临时设备授权码
授权完成以后验证:
gh auth status
如果看到已经登录:
Logged in to github.com account Yepsoso
说明成功。
然后再:
git clone https://github.com/Yepsoso/tongbu.git
十六、git clone 到底下载到哪里
假设 Mac 当前终端是:
yep@yepdeMacBook-Air ~ %
这里的:
~
代表用户主目录:
/Users/yep
如果执行:
git clone https://github.com/Yepsoso/tongbu.git
Git 会自动创建:
/Users/yep/tongbu
可以用:
pwd
查看当前目录。
用:
ls
查看当前目录的文件。
如果想在 Finder 中打开项目:
open ~/tongbu
进入项目:
cd ~/tongbu
十七、Mac 修改文件后怎么上传 GitHub
假设已经进入:
cd ~/tongbu
先修改文件。
然后检查:
git status
比如看到:
modified: ce.txt
说明 Git 检测到了修改。
然后:
git add .
再:
git commit -m "Mac修改"
最后:
git push
整个流程:
修改文件
↓
git add .
↓
git commit
↓
git push
↓
GitHub
十八、一条命令直接提交并推送
如果已经确定当前项目没有需要排除的文件,可以直接:
git add . && git commit -m "update" && git push
它相当于连续执行:
git add .
把所有修改加入提交。
git commit -m "update"
创建一个版本。
git push
上传 GitHub。
所以以后改完代码,可以直接:
git add . && git commit -m "update" && git push
更推荐把 update 改成具体内容,例如:
git add . && git commit -m "修改产品详情页" && git push
这样以后查看历史时能知道每一次改了什么。
十九、Windows 怎么拿到 Mac 的修改
假设 Mac 已经:
git push
Windows 上进入对应项目:
cd "C:\Users\Administrator\Desktop\测试"
然后:
git pull
pull 可以理解成:
从 GitHub 把最新版本拉到这台电脑。
整个过程:
Mac 修改
↓
git push
↓
GitHub
↓
Windows git pull
↓
Windows 获得最新版
反过来完全一样。
Windows 修改以后:
git add .
git commit -m "Windows修改"
git push
然后 Mac:
git pull
二十、以后两台电脑的标准工作流程
这是以后最重要的一套流程。
1.开始工作之前
先进入项目。
然后:
git pull
为什么?
因为另一台电脑可能已经修改并上传了最新版本。
如果不先 pull,你可能在旧代码上继续修改,之后容易发生冲突。
2.正常修改项目
正常使用:
VS Code
Codex
Cursor
其他编辑器
修改即可。
Git 不要求你通过某个专门软件修改文件。
3.修改完成以后
先查看:
git status
确认有哪些文件变化。
然后:
git add .
提交:
git commit -m "说明这次做了什么"
上传:
git push
或者直接:
git add . && git commit -m "update" && git push
二十一、项目文件夹可以移动吗
可以。
例如现在项目:
/Users/yep/tongbu
移动到:
/Users/yep/Desktop/tongbu
没有问题。
因为 Git 信息保存在项目内部:
tongbu
├── .git
├── ce.txt
├── src
└── ...
只要整个:
tongbu
文件夹一起移动:
.git
也会跟着移动。
Git 历史、GitHub 地址、分支等都不会丢。
二十二、项目文件夹可以改名字吗
可以。
比如:
tongbu
改成:
公司网站
Git 不在乎项目外层文件夹叫什么。
只要里面:
.git
还存在即可。
移动或改名以后进入新路径:
cd "新的项目路径"
然后:
git status
如果看到:
On branch main
说明 Git 仍然正常。
再检查:
git remote -v
如果还是:
origin https://github.com/Yepsoso/tongbu.git
说明 GitHub 连接也正常。
二十三、什么情况下移动会把 Git 搞丢
不要只复制项目里面的普通文件,却漏掉隐藏的:
.git
例如原来:
tongbu
├── .git
├── ce.txt
└── src
如果只把:
ce.txt
src
复制到新文件夹:
新项目
├── ce.txt
└── src
那么新文件夹已经不是原来的 Git 仓库。
执行:
git status
可能出现:
fatal: not a git repository
所以:
要移动 Git 项目,就移动整个项目文件夹。
二十四、.gitignore 是什么
.gitignore 是用来告诉 Git:
哪些文件不要上传,也不要进入版本管理。
例如 Node.js 项目通常应该忽略:
node_modules/
.env
.env.local
dist/
build/
.next/
.DS_Store
Thumbs.db
特别注意:
.env
经常包含:
API Key
数据库密码
密钥
Token
不要上传 GitHub。
例如:
OPENAI_API_KEY=xxxx
DATABASE_PASSWORD=xxxx
这些内容一旦进入公开仓库,就可能泄露。
二十五、几个最常用命令到底是什么意思
git status
查看现在有哪些文件发生变化。
git add .
把当前所有修改准备提交。
git commit -m "说明"
创建一个本地 Git 版本。
git push
把本地版本上传 GitHub。
git pull
从 GitHub 下载最新版本。
git clone 仓库地址
第一次把整个 GitHub 项目下载到一台新电脑。
git remote -v
查看这个项目现在连接的是哪个 GitHub 仓库。
git log --oneline
查看以前提交过的版本。
例如:
a832abc 修复首页
b982def 增加产品页面
c371abc 第一次提交
二十六、最容易混淆的三个动作
这三个一定要分清。
git add
意思:
这些修改我准备保存。
还没有正式保存版本。
git commit
意思:
正式保存成一个 Git 版本。
但是这个版本仍然只在当前电脑上。
git push
意思:
把已经 commit 的版本上传 GitHub。
所以:
修改文件
↓
add
↓
commit
↓
push
缺一不可。
二十七、推荐以后直接这样使用
每次打开电脑准备工作:
cd "你的项目路径"
git pull
正常修改项目。
完成以后:
git status
确认变化没问题。
然后:
git add . && git commit -m "这次修改的内容" && git push
换到另一台电脑:
cd "项目路径"
git pull
继续工作。
整个多设备同步逻辑就是:
电脑 A
git pull
↓
修改
↓
git add .
↓
git commit
↓
git push
↓
GitHub
↓
电脑 B
git pull
↓
修改
↓
git add .
↓
git commit
↓
git push
只要记住一句:
开始工作先 pull,结束工作再 push。
二十八、目前这套环境的实际情况
GitHub 账号:
Yepsoso
测试远程仓库:
https://github.com/Yepsoso/tongbu.git
Windows 已经能够:
commit
push
Mac 已经完成 GitHub 授权,并能够:
clone
pull
push
所以目前 Windows ↔ GitHub ↔ Mac 的基本同步链路已经打通。
以后真正项目也按照相同方法操作即可。
Untitled