Git学习应边做边用,初始化前需确认目录并配置.gitignore;add/commit/push是分层快照操作,理解文件状态比记命令更重要。

Git 不是“先学完再用”,而是边做边建、边改边提——只要你会写代码,现在就能开始用 Git 管理你的第一个项目。
初始化本地仓库前,先确认当前目录和 .gitignore
别急着 git init。进错目录会导致仓库嵌套或污染父级项目;没配 .gitignore 会让 node_modules、__pycache__、.DS_Store 这类文件被误提交,后续清理麻烦且易出错。
- 用
pwd(macOS/Linux)或cd(Windows)确认你在项目根目录 - 运行
ls -a或dir /a查看是否已有.git文件夹,避免重复初始化 - 新建
.gitignore文件,至少填入你语言的常见忽略项,比如 Python 项目加__pycache__/\n*.pyc\n.env,前端项目加node_modules/\ndist/\n*.log
add / commit / push 三步不是线性流程,而是分层快照操作
git add 是“选哪些改动进暂存区”,git commit 是“把暂存区打成一个快照”,git push 是“把本地分支快照同步到远程”。很多人卡在 push 失败,其实问题常出在前两步没理解清楚。
-
git add -A会把所有未跟踪 + 已修改文件加入暂存区;日常建议用git add -p逐块审查,避免误提调试代码 -
git commit -m "fix: typo in login button"中的fix:不是必须,但加上能让后续git log --oneline更易读 - 首次
git push失败?大概率因为没指定上游分支,改用git push -u origin main(注意分支名是main而非master,GitHub 新仓库默认如此)
遇到 “fatal: not a git repository” 或 “refusing to merge unrelated histories” 怎么办
前者说明你不在 Git 仓库内,或当前目录没初始化;后者多见于把已有代码拷贝进新仓库后直接 git pull,Git 认为两个历史毫无关联,拒绝自动合并。
- 检查输出路径是否含
.git:运行ls -la | grep .git或dir .git - 若确定要合并无关历史,用
git pull origin main --allow-unrelated-histories,但仅限一次性整合旧代码,不建议作为常规操作 - 更稳妥的做法是:在空目录
git init→git remote add origin→ 把源代码复制进来 →git add . && git commit -m "initial commit"→ 再git push -u origin main
真正卡住初学者的,往往不是命令记不住,而是没意识到 Git 操作对象是“文件状态”而非“文件本身”——删了代码却没 git add -u,改了配置却忘了 git checkout -- 撤回,这些细节比语法更影响节奏。










