Git 小白超详细指南
Git 小白超详细指南
最最常用的命令(每天都要用)
1. 查看状态 - git status
作用:看看你现在在哪个分支,文件有没有修改,该提交什么
bash
git status
你会看到:
text
位于分支 main 您的分支与上游分支 'origin/main' 一致。尚未暂存以备提交的变更:(使用 "git add <文件>..." 更新要提交的内容)(使用 "git restore <文件>..." 丢弃工作区的改动)修改: README.md未跟踪的文件:(使用 "git add <文件>..." 以包含要提交的内容)new-file.txt无文件要提交,干净的工作区
翻译:
红色文件:修改了但还没准备提交
绿色文件:已经准备好可以提交了
2. 添加文件到准备区 - git add
作用:告诉 Git"这些文件我改好了,准备提交"
bash
git add README.md # 只添加这个文件 git add . # 添加所有修改的文件(最常用) git add *.js # 添加所有js文件
3. 提交更改 - git commit
作用:把准备好的文件正式保存到版本库
bash
git commit -m "修复了登录bug" # -m 后面写提交说明
提交说明要写清楚:
❌ 不好的:"修改"
✅ 好的:"修复用户登录时密码验证失败的问题"
4. 推送到远程仓库 - git push
作用:把你本地的提交上传到 GitHub/GitLab
bash
git push origin main # 推送到main分支
第一次推送可能需要登录账号密码。
5. 拉取最新代码 - git pull
作用:从远程仓库下载最新的代码
bash
git pull origin main
重要:在开始写代码前,先执行这个命令!
小白每日工作流程
场景:早上来公司开始工作
bash
# 1. 打开终端,进入项目目录 cd /path/to/your/project# 2. 拉取最新代码(避免冲突) git pull origin main# 3. 开始写代码... # (修改文件,添加功能等)# 4. 写完代码后,查看状态 git status# 5. 添加所有修改的文件 git add .# 6. 提交更改 git commit -m "完成了用户注册功能"# 7. 推送到远程 git push origin main
小白最常遇到的10个问题
问题1:git push
被拒绝
错误信息:
text
! [rejected] main -> main (non-fast-forward)
原因:别人已经推送了代码,你的本地版本太旧了
解决方法:
bash
# 先拉取最新代码 git pull origin main# 如果有冲突,解决冲突(下面会讲) # 然后重新推送 git push origin main
问题2:git pull
出现冲突
错误信息:
text
CONFLICT (content): Merge conflict in file.txt
解决方法:
打开冲突文件,你会看到:
javascript
<<<<<<< HEAD 这是你写的代码 ======= 这是别人写的代码 >>>>>>> commit-id
手动选择要保留的代码,删除标记:
javascript
// 这是最终合并后的代码 // 你可以选择保留你的,或者别人的,或者都保留 这是合并后的代码
标记冲突已解决:
bash
git add 冲突的文件名 git commit -m "解决合并冲突"
问题3:提交到错误的分支
场景:应该在 feature
分支写代码,却在 main
分支写了
解决方法:
bash
# 1. 保存当前的修改 git add . git commit -m "临时保存"# 2. 创建并切换到正确的分支 git checkout -b feature-branch# 3. 回到main分支,删除刚才的提交 git checkout main git reset --hard HEAD~1 # 回退到上一个提交# 4. 回到feature分支继续工作 git checkout feature-branch
问题4:提交信息写错了
解决方法:
bash
git commit --amend -m "新的正确提交信息"
注意:如果已经 git push
了,就不要用这个命令了。
问题5:想撤销还没提交的修改
场景:写了一半发现写错了,想重来
bash
# 撤销单个文件的修改 git checkout -- filename.txt# 撤销所有修改(谨慎使用!) git checkout -- .# 或者使用更新的命令 git restore filename.txt
问题6:不小心删除了重要文件
解决方法:
bash
# 恢复单个文件 git checkout HEAD -- filename.txt# 恢复所有文件到最新提交状态 git checkout -- .
问题7:忘记切换分支就开始写代码
场景:应该在 develop
分支写,却在 main
分支写了
解决方法:
bash
# 1. 保存当前的修改 git add . git commit -m "临时提交"# 2. 切换到正确的分支 git checkout develop# 3. 把刚才的提交"搬"过来 git cherry-pick main# 4. 回到main分支删除那个提交 git checkout main git reset --hard HEAD~1
问题8:分支搞乱了,想重新开始
解决方法:
bash
# 回到远程仓库的最新状态(会丢失所有本地修改!) git fetch origin git reset --hard origin/main
问题9:输入 git log
后不知道怎么退出
解决方法:按 q
键(quit)
问题10:密码输错了,一直认证失败
解决方法:
bash
# 清除保存的凭据,重新输入 git credential reject git push origin main # 会重新要求输入用户名密码
实用小技巧
1. 简化命令
可以设置别名:
bash
git config --global alias.st status git config --global alias.ci commit git config --global alias.co checkout git config --global alias.br branch
这样就能用:
bash
git st # 代替 git status git ci -m "消息" # 代替 git commit -m
2. 查看简洁状态
bash
git status -s
输出更简洁:
text
M README.md # 修改的文件 A new-file.txt # 新文件 D old-file.txt # 删除的文件 ?? unknown.txt # 未跟踪文件
3. 查看这次提交改了啥
bash
git diff # 查看未暂存的修改 git diff --staged # 查看已暂存的修改
记住这5个命令就能活下来
git status
- 看看现在啥情况git pull
- 下载最新代码git add .
- 准备提交所有文件git commit -m "描述"
- 提交更改git push
- 上传到远程
遇到问题就:
别慌
git status
看看情况按上面的解决方法操作
实在不行就找同事帮忙
记住:Git 的所有操作几乎都可以撤销,不会把代码搞丢的!