初始化git仓库后必须立即执行三步:统一主分支名为main、配置.gitignore忽略无用文件、提交含readme.md/.gitignore/license的有意义快照,否则无法推送且仓库不可协作。

直接初始化一个干净、可立即协作的 Git 仓库,关键不是执行 git init 这一步,而是它之后的三件事:设置初始分支名、忽略无用文件、提交第一个有意义的快照。
为什么 git init 后不能直接 push?
新仓库默认没有远程关联,也没有任何 commit —— Git 拒绝推送空分支。更隐蔽的问题是:Git 2.28+ 默认使用 main 分支,而 GitHub/GitLab 新建远程库仍常预设 master,直接 git push -u origin master 会报 src refspec master does not match any。
- 先运行
git init,再立刻用git checkout -b main(或git branch -M main)统一本地主分支名 - 检查 Git 版本:
git --version;若低于 2.28 且想提前适配,可全局设git config --global init.defaultBranch main - 远程仓库创建后,必须先
git remote add origin <url></url>,再git push -u origin main
哪些文件绝对要加进 .gitignore 才算“完整”?
跳过 .gitignore 是新手仓库污染和误提交的主因。它不是“选配”,而是初始化时就该存在的第一份配置文件。
GitHub 仓库备份技能 - 将 OpenClaw 工作空间自动或手动备份至 GitHub 私有仓库。支持自动定时备份和手动交互式配置,引导完成 Token 配置、仓库创建、首次备份及定时任务设置。用途:(1) 首次设置 (2) 日常备份。
- IDE 相关:如
.idea/(IntelliJ)、.vscode/(VS Code)、*.swp(Vim 交换文件) - 构建产物:如
node_modules/(Node.js)、__pycache__/(Python)、target/(Maven) - 环境凭证:如
.env、config.local.php—— 即使本地测试也别提交 - 用
curl -o .gitignore https://raw.githubusercontent.com/github/gitignore/main/Python.gitignore快速拉取语言模板(替换Python为Node、Java等)
git commit -m "init" 为什么不够?
单行 “init” 提交无法体现项目意图,后续 git log 或 git blame 完全失去上下文。更重要的是:空提交不触发 CI/CD 配置识别(如 .github/workflows/ 下的 YAML 文件需真实 commit 才生效)。
- 首次提交前至少应有:一个可读的
README.md(哪怕只写项目名)、一份基础.gitignore、以及明确的 LICENSE(用echo "# MyProject" > README.md快速生成) - 用
git add README.md .gitignore精确暂存,避免git add .意外纳入临时文件 - 提交信息写成
git commit -m "chore: add README, .gitignore and MIT license",动词 + 范围 + 内容,CI 工具能自动解析
真正卡住人的往往不是命令记不住,而是 git init 后漏掉分支重命名、忽略规则或有效提交——这三步缺一,仓库就算“活”着,也走不出本地目录。










