1. Git入门:从零开始配置环境
第一次接触Git时,我盯着命令行窗口发呆了半小时——这玩意儿怎么比Linux命令还难记?后来发现其实Git就像个智能文件管家,只不过需要先给它办个"入职手续"。
安装Git最简单的方式是直接官网下载对应版本。Windows用户推荐勾选"Git Bash Here"选项,这样在文件夹右键就能快速打开终端。装完后别急着关窗口,先做两件重要的事:
git config --global user.name "你的名字" git config --global user.email "你的邮箱"这两个配置就像给你的代码签名,每次提交都会带上这个身份信息。有次我忘记配置就直接提交代码,结果团队review时发现提交者显示"unknown",差点被当成可疑入侵。
验证安装是否成功可以输入:
git --version看到版本号说明你的代码管家已经准备就绪。建议顺手设置下默认编辑器(VSCode用户看这里):
git config --global core.editor "code --wait"2. 单人开发实战:本地仓库操作指南
2.1 创建你的第一个仓库
新建项目文件夹后,在目录下右键选择"Git Bash Here",输入:
git init这个命令会在当前目录创建隐藏的.git文件夹,相当于给项目上了"时间机器"。我习惯用ls -a查看是否创建成功,看到.git目录就安心了。
2.2 代码提交的三步曲
工作流程就像寄快递:
- 把文件放进暂存区(打包):
git add 文件名 - 填写快递单(提交信息):
git commit -m "修复了登录bug" - 实际寄出(后续的push)
有次我add之后直接关了电脑,第二天发现改动全没了——原来没commit的代码就像没保存的文档。现在我都用git commit -am "快捷提交"一键完成add和commit。
2.3 时光机功能:版本回退
误删文件时别慌,git log查看提交记录,找到想回到的版本号:
git reset --hard 版本号前7位有次我把项目改崩了,用这招直接回到昨天正常的状态,节省了8小时重写时间。
更高级的git reflog能显示所有操作记录,就像系统级的撤销/重做功能。配合git checkout -- 文件名可以丢弃未提交的修改,相当于局部撤销。
3. 分支管理:高效开发的秘密武器
3.1 分支创建与切换
主分支(master/main)就像正式生产线,新功能应该在独立分支开发:
git branch 新功能分支 git checkout 新功能分支 # 或者合并成一条命令 git checkout -b 新功能分支我们团队曾直接在master上改代码,结果导致线上版本崩溃。现在严格遵守"主分支保护"原则,新功能必须通过分支开发。
3.2 合并与冲突解决
合并分支时经常遇到冲突,就像多人同时编辑同一份文档。解决步骤:
- 切换到主分支:
git checkout main - 合并分支:
git merge 新功能分支 - 遇到冲突时,用编辑器手动解决标记冲突的文件
- 重新add和commit
推荐使用VSCode的冲突解决工具,可视化操作更直观。合并后记得删除已合并的分支:
git branch -d 新功能分支4. 团队协作:远程仓库实战
4.1 连接远程仓库
首先在GitHub/Gitee上新建仓库,然后关联本地仓库:
git remote add origin 仓库地址第一次推送需要加-u参数建立追踪:
git push -u origin main建议配置SSH密钥避免每次输入密码:
ssh-keygen -t rsa -C "你的邮箱" # 将~/.ssh/id_rsa.pub内容添加到GitHub4.2 克隆与拉取
加入已有项目时直接克隆:
git clone 仓库地址每天开始工作前先拉取最新代码:
git pull有次我没pull就直接改代码,结果push时发现冲突,不得不重做半天的工作。
4.3 解决推送冲突
当多人修改同一文件时,Git会拒绝你的push。这时需要:
- 先pull最新代码:
git pull - 解决冲突文件中的标记
- 重新commit和push
推荐使用git fetch+git merge替代直接pull,更清晰可控。团队协作时养成小步提交的习惯,能大幅减少冲突概率。
5. 高效工作流:Git实战技巧
5.1 忽略文件配置
创建.gitignore文件排除不需要版本控制的文件,比如:
node_modules/ *.log .idea/有次我忘了配置,结果把5GB的模型文件传到了仓库,差点把服务器撑爆。
5.2 标签管理
给重要版本打标签:
git tag -a v1.0 -m "正式版发布" git push origin v1.0标签就像书签,可以快速切换到特定版本。
5.3 储藏临时修改
临时切换分支时,用stash保存未完成的工作:
git stash git stash pop这个功能帮我解决了无数次紧急bug修复的需求切换。
6. 常见问题排错指南
提交了错误信息?
git commit --amend想撤销上次提交?
git reset HEAD~1误删了未提交的文件?
git checkout -- 文件名想查看某行代码是谁写的?
git blame 文件名
有次我发现个诡异bug,用blame定位到三年前的某次提交,原来是个临时调试代码被遗忘在那了。
记住Git的黄金法则:只要没执行git gc,几乎所有操作都能找回。不过最好还是养成定期推送的习惯,毕竟本地仓库也有崩溃的风险。