1. GitHub仓库操作基础认知
作为现代开发者的标配技能,GitHub命令行操作就像厨师的刀工一样重要。我见过太多新手在团队协作时因为不熟悉基本命令而手忙脚乱,甚至把仓库搞得一团糟。掌握这些命令不仅能提升工作效率,还能避免很多不必要的版本冲突问题。
GitHub命令行操作主要分为仓库初始化、代码提交、分支管理和远程协作四大场景。不同于图形化界面,命令行操作更精准高效,特别适合批量处理文件或复杂版本回退场景。接下来我会按照实际开发中的工作流顺序,详细介绍每个阶段最实用的命令组合。
重要提示:所有命令示例均基于Git 2.0+版本,部分参数在老版本可能不兼容。建议先运行
git --version确认版本号。
2. 仓库初始化与基础配置
2.1 本地仓库创建与克隆
创建新仓库时,我习惯先用mkdir建立项目目录,再初始化Git:
bash复制mkdir my-project && cd my-project
git init
克隆现有仓库时,特别注意--depth参数可以节省克隆时间。比如只需要最近一次提交:
bash复制git clone --depth 1 https://github.com/user/repo.git
2.2 用户身份配置
首次使用Git必须配置全局身份,否则提交记录会显示匿名用户:
bash复制git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
项目级配置会覆盖全局设置,适合多账号场景:
bash复制git config user.name "Work Account"
查看配置项用git config --list,验证配置是否生效。
3. 日常代码提交管理
3.1 文件状态检查与差异对比
git status是最常用的命令之一,但加上-s参数显示更简洁:
bash复制git status -s
# 输出示例:
# M modified_file.txt
# ?? new_file.txt
查看具体修改内容时,我更喜欢用分页模式:
bash复制git diff | less
3.2 提交优化技巧
推荐使用git add -p交互式暂存,可以逐个确认修改块:
bash复制git add -p
提交信息格式建议遵循约定式提交:
bash复制git commit -m "feat: add user login functionality"
3.3 撤销与修改提交
撤销工作区修改(危险操作!):
bash复制git checkout -- file.txt
修改上次提交(仅限未推送的情况):
bash复制git commit --amend
4. 分支操作全攻略
4.1 分支创建与切换
创建新分支并立即切换:
bash复制git checkout -b feature/new-module
查看分支关系图(超实用):
bash复制git log --graph --oneline --all
4.2 合并与冲突解决
使用--no-ff保留合并历史:
bash复制git merge --no-ff feature/new-module
遇到冲突时,可以用VS Code等编辑器可视化解决,完成后标记为已解决:
bash复制git add resolved_file.txt
git commit
5. 远程仓库协作技巧
5.1 远程连接管理
查看远程仓库信息:
bash复制git remote -v
添加多个远程仓库(比如同时推送到GitHub和Gitee):
bash复制git remote add github https://github.com/user/repo.git
git remote add gitee https://gitee.com/user/repo.git
5.2 推送与拉取优化
强制推送的替代方案(更安全):
bash复制git push --force-with-lease
拉取更新时推荐使用rebase避免合并提交:
bash复制git pull --rebase
6. 高级实用命令集锦
6.1 暂存区操作
临时保存工作现场(比提交更灵活):
bash复制git stash push -m "WIP: debugging"
恢复暂存内容并保留记录:
bash复制git stash apply stash@{1}
6.2 历史记录查询
按作者筛选提交记录:
bash复制git log --author="John"
搜索提交内容中的关键字:
bash复制git log -S "TODO"
6.3 文件追溯与恢复
查看某行代码的最后修改者:
bash复制git blame file.txt -L 10,15
恢复已删除的文件:
bash复制git checkout HEAD^ -- deleted_file.txt
7. 常见问题排查手册
7.1 认证失败处理
SSH认证问题先检查密钥是否添加:
bash复制ssh -T git@github.com
HTTPS方式记住凭证(安全考虑慎用):
bash复制git config --global credential.helper store
7.2 大文件提交错误
查看大文件分布:
bash复制git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')"
使用git-lfs管理大文件:
bash复制git lfs track "*.psd"
7.3 分支混乱修复
重置本地分支到远程状态:
bash复制git fetch origin
git reset --hard origin/main
清理已合并的本地分支:
bash复制git branch --merged | grep -v "\*" | xargs -n 1 git branch -d
8. 我的命令行效率技巧
- 配置alias节省输入:
bash复制[alias]
co = checkout
br = branch
ci = commit
st = status
- 使用
tig替代git log查看更直观的历史记录:
bash复制brew install tig # macOS
apt install tig # Linux
- 在
.gitconfig中添加颜色配置提升可读性:
ini复制[color]
ui = auto
[color "branch"]
current = yellow reverse
local = yellow
remote = green
- 对于复杂操作,先使用
--dry-run参数模拟执行:
bash复制git clean -n # 显示将被删除的文件