Git 项目管理实战指南
本文将介绍如何从零开始同步项目到 GitHub、如何进行日常更新维护,以及如何通过配置过滤不必要的文件。
目录
如何将本地项目同步到远程 (首次上传)
如果你有一个本地写好的代码文件夹(例如:online-tools-platform),想要上传到 GitHub,请按照以下步骤操作:
第一步:初始化仓库
打开终端(Git Bash 或 PowerShell),进入你的项目目录:
cd /d/phpstudy_pro/WWW/online-tools-platform
git init
第二步:关联远程仓库
将本地仓库与 GitHub 上的空仓库关联(请替换为你自己的 URL):
git branch -M main
git remote add origin https://github.com/KennexKleiz/ai-tools.git
第三步:提交并推送
将文件加入暂存区并推送到服务器:
git add .
git commit -m "首次提交项目代码"
git push -u origin main
💡 提示:网络问题
如果因为网络原因导致 push 失败(连接超时),且你正在使用代理软件(如 Clash),可以在终端设置 Git 代理:
注意修改端口号 7890 为你实际使用的端口
git config --global http.proxy https://www.google.com/search?q=http://127.0.0.1:7890
git config --global https.proxy https://www.google.com/search?q=http://127.0.0.1:7890
. 如何更新项目 (日常维护)
当你修改了代码、新增了功能或者修复了 Bug 后,需要将变动同步到远程仓库。
标准更新流程
只需简单的三步曲:
添加变动:将所有修改过的文件放入暂存区。
git add .
提交说明:告诉 Git 你这次改了什么(这是给未来的自己看的)。
git commit -m "新增了图片处理功能"
推送到远程:
git push
如果多人协作 (拉取更新)
如果在你修改代码期间,远程仓库被别人(或你在另一台电脑上)更新了,你需要先拉取最新代码:
git pull origin main
. 如何过滤不需要上传的文件 (.gitignore)
在项目中,有些文件(如依赖包 node_modules、系统缓存 .DS_Store、环境配置 .env)是不应该上传到 GitHub 的。我们需要创建一个忽略规则文件。
第一步:创建 .gitignore 文件
在项目根目录下创建一个名为 .gitignore 的文件(注意前面有个点),填入以下常用规则:
--- 依赖目录 ---
node_modules/
vendor/
--- 系统文件 ---
.DS_Store
Thumbs.db
--- 构建输出 ---
dist/
build/
--- 日志与环境配置 ---
*.log
.env
处理“已上传”的垃圾文件
如果你在创建 .gitignore 之前已经执行过 git add .,那么这些本该被忽略的文件可能已经被 Git 跟踪了。你需要执行以下命令来“清除缓存”并重新生效规则:
撤销所有文件的暂存(不会删除本地物理文件,只是从 Git 索引中移除)
git rm -r –cached .
重新添加文件(Git 这次会读取 .gitignore 并自动忽略垃圾文件)
git add .
提交变更
git commit -m “更新 .gitignore 规则”
推送
git push
. 如何拉取远程代码 (保持同步 – 下载)
如果你在多台电脑上工作,或者团队成员更新了代码,你需要将远程仓库的最新改动拉取到本地。
标准拉取流程
在开始每天的工作之前,建议先执行拉取操作,以确保本地代码是最新的:
git pull origin main
git pull
//git pull origin main 更安全、明确,适合新手或脚本使用。
//git pull 更快捷,适合已经配置好关联关系的日常开发。
这条命令会自动下载远程的最新代码并尝试合并到你的本地分支。
如果遇到冲突 (Conflict)
当你拉取代码时,如果远程修改的文件和你本地正在修改的文件是同一个,Git 可能会提示冲突。处理流程如下:
暂存本地修改(可选但推荐):
如果你不想处理复杂的合并,可以先把本地修改暂存起来:
git stash
git pull origin main
git stash pop
手动解决冲突:
如果 git pull 后提示冲突,打开冲突的文件(代码中会出现 <<<<<<< 和 >>>>>>> 标记)。
手动修改代码,保留你想要的内容,删除标记符号。
提交解决后的代码:
git add .
git commit -m "解决合并冲突"
git push
