很多人在开发时,都会遇到这样一种情况:
- 已经写了一堆代码
- 项目文件夹已经存在
- 但还没有使用 Git 管理
- 想上传到 GitHub / GitLab
- 或者后续想多人协作
这时候最常见的问题就是:
“如何把一个已有代码目录,配置成 Git 仓库?”
今天这篇文章,就带你完整走一遍。
适合:
- Python / Java / 前端 / AI 项目
- 个人项目
- 公司项目
- 本地已有代码目录
全部通用。
一、什么是 Git 仓库?
简单理解:
Git 会在你的项目里创建一个:
.git/
隐藏目录。
这个目录会记录:
- 代码历史
- 修改记录
- 分支信息
- 提交版本
- 回滚信息
也就是说:
Git 本质上是在“管理代码历史”。
二、已有项目目录,如何初始化 Git?
假设你已经有一个项目:
~/project/my-app
里面已经有代码了。
第一步:进入项目目录
cd ~/project/my-app
第二步:初始化 Git
执行:
git init
成功后会看到:
Initialized empty Git repository
这时项目里会多出:
.git/
隐藏目录。
说明:
当前目录已经变成 Git 仓库了。
三、查看 Git 状态
执行:
git status
你会看到:
Untracked files:
意思是:
Git 发现了文件,但还没有开始跟踪。
这是正常的。
四、创建 .gitignore(非常重要)
很多新手最容易犯的错误:
把:
- 虚拟环境
- 缓存
- 临时文件
- 编译文件
全部提交到了 Git。
结果仓库巨大无比。
所以:
一定要配置:
.gitignore
Python 项目推荐
创建:
touch .gitignore
写入:
__pycache__/
*.pyc
.env
venv/
.idea/
.vscode/
dist/
build/
前端项目推荐
node_modules/
dist/
.env
.vscode/
五、添加代码到 Git
执行:
git add .
意思:
把当前目录所有文件加入 Git 暂存区。
六、第一次提交代码
执行:
git commit -m "init project"
这里:
-m
后面是:
提交说明。
例如:
git commit -m "初始化项目"
七、到这里你已经完成了什么?
现在:
你的项目已经:
成为 Git 仓库 开始被 Git 管理 有了第一版代码历史
这意味着:
你以后可以:
- 查看历史版本
- 回滚代码
- 创建分支
- 多人协作
- 上传 GitHub
八、关联 GitHub / GitLab 仓库
如果你还想:
- 上传 GitHub
- 上传 GitLab
- 远程备份
继续下面步骤。
第一步:创建远程仓库
例如 GitHub:
创建:
my-app
仓库。
注意:
不要勾选:
- README
- License
- .gitignore
否则容易冲突。
第二步:添加远程仓库
例如:
git remote add origin git@github.com:xxx/my-app.git
或者:
git remote add origin https://github.com/xxx/my-app.git
第三步:推送代码
先统一主分支名称:
git branch -M main
然后:
git push -u origin main
成功后:
你的代码就上传到远程仓库了。
九、查看远程仓库配置
执行:
git remote -v
会看到:
origin git@github.com:xxx/my-app.git
十、最推荐的 SSH 配置(强烈建议)
很多人 push 时:
总被要求输入密码。
原因:
没有配置 SSH Key。
生成 SSH Key
执行:
ssh-keygen -t ed25519 -C "你的邮箱"
一路回车。
查看公钥
执行:
cat ~/.ssh/id_ed25519.pub
复制输出内容。
添加到 GitHub
进入:
GitHub → Settings → SSH and GPG keys
新增 Key。
以后:
git push
无需密码。
十一、最容易踩的坑
1. 已经存在 .git
执行:
ls -a
如果看到:
.git
说明:
已经是 Git 仓库。
不要再次:
git init
否则可能出现嵌套问题。
2. 想彻底重置 Git
删除:
rm -rf .git
然后重新:
git init
3. push 被拒绝
例如:
rejected
通常是:
远程仓库已经有 README。
解决:
git pull origin main --allow-unrelated-histories
然后再 push。
4. merge 时进入 nano 编辑器
很多新手看到:
Merge branch 'develop'
会慌。
其实只是 Git 让你填写 merge 提交信息。
保存退出即可。
nano 操作:
保存:
Ctrl + O
退出:
Ctrl + X
十二、推荐的完整初始化流程(建议收藏)
cd my-app
git init
touch .gitignore
git add .
git commit -m "init"
git branch -M main
git remote add origin git@github.com:xxx/my-app.git
git push -u origin main
十三、生产开发中的 Git 最佳实践
真正进入团队开发后,建议:
1. 永远不要直接开发 main
使用:
- develop
- feature/*
- hotfix/*
分支。
2. 提交信息规范
不要:
update
fix
修改
推荐:
feat: 新增音频上传功能
fix: 修复远程目录创建问题
refactor: 重构文件上传模块
3. 每天提交代码
不要:
- 一周一个 commit
- 一次提交几千行
否则后面根本无法定位问题。
4. 提交前先 pull
避免:
git push rejected
推荐:
git pull --rebase
十四、最后总结
一句话:
Git 不是“备份工具”,而是“代码历史管理系统”。
真正掌握 Git 后:
你会发现:
- 回滚代码不再害怕
- 多人协作更轻松
- 项目管理更清晰
- 开发效率会明显提升
而:
git init
就是你进入工程化开发的第一步。
本文由 楸木 原创,转载请注明出处。