学习前提
使用Git 2.35+与Bash兼容终端(Windows可用Git Bash)。每章完整代码都会创建独立临时目录;仅在练习仓库运行。git config仅修改该仓库,示例身份不是你的真实提交身份。临时目录不会自动删除,可在完成后自行清理。
本课完成后你能做什么
建立本地仓库,理解提交与远程托管的区别。
先理解机制
Git在本地保存项目历史。GitHub、GitLab等是可以托管Git仓库的服务;没有账号和网络也能初始化、查看差异并提交。一次commit创建一份已暂存内容的快照,push才是把相关提交传到远端。
先从Git官方安装说明选择适合操作系统的安装方式,再用git --version确认终端找到Git。本系列使用init -b、switch和restore,因此统一使用Git 2.35或以上;图形客户端不替代这些概念。
user.name和user.email写入提交元数据,不是登录密码。公开推送时这些元数据可能公开;真实项目应使用合适的署名和公开或平台隐私邮箱。示例只配置临时仓库,不修改你的全局身份。
main是分支名,不是Git固定必须使用的名字。提交编号由内容和元数据共同决定,不应期待你的编号与教程完全一致。运行后用日志标题和状态检查结果。
可运行示例
lab=$(mktemp -d)
cd "$lab"
git init -b main .
git config user.name "Honeysuck Learner"
git config user.email 'learner'@'example.invalid'
git config commit.gpgsign false
git config core.autocrlf false
git --version
printf '# My study notes\n' > README.md
git status --short
git add README.md
git commit -m "Create study notebook"
git log -1 --format=%s
git status --short
推演与验证
首次status显示?? README.md,表示未跟踪。提交后日志标题为Create study notebook,最后的简短状态没有输出,表示工作区与暂存区干净。
常见错误与边界
git init不会自动备份目录中全部文件,未add的文件不在提交里。仓库历史也不能替代异地备份;不要把访问令牌当作配置邮箱或提交内容。
动手练习
新增一句学习目标并提交第二次,检查提交数量。
参考解法与理由
向README.md追加内容,依次执行git diff、git add README.md、git commit -m "Add learning goal"。git rev-list --count HEAD应为2,最后status为空。