每个开发人员都应该知道的 20 个 Git 命令行技巧
阅读:15
点赞:0
Git 是开发者不可或缺的版本控制工具。虽然图形界面工具(GUI)可以简化某些任务,但掌握 Git 命令行提供了更深的控制力、灵活性以及速度。以下是 20 个 Git 命令行技巧,可以帮助你优化工作流程。
一、设置全局配置
确保你的提交标记了正确的身份。
# 设置 Git 用户名
git config --global user.name "Your Name"
# 设置 Git 邮箱地址
git config --global user.email "you@example.com"
?? 提示:使用 --local
而不是 --global
来设置项目特定的配置。
二、撤销最后一次提交(不丢失更改)
如果你在最后一次提交中犯了错误,你可以撤销它而不丢失更改。
# 撤销最后一次提交,但保留更改
git reset --soft HEAD~1
这会留下你的更改处于暂存状态,因此你可以修正问题或者修改提交信息。
三、修改最后一次提交
忘记包含一个更改或者想要更新提交信息?
# 将所有更改添加到暂存区
git add .
# 修改最后一次提交的信息
git commit --amend -m "Updated commit message"
这会更新之前的提交而不创建新的提交记录。
四、暂存未提交的更改
需要快速切换分支但不想提交更改?
# 暂存所有未提交的更改
git stash
?? 获取暂存的内容可以用:
# 从暂存中恢复更改
git stash pop
五、图形化查看提交历史
可视化提交历史使理解项目的状态更加容易。
# 显示所有分支的提交历史图
git log --graph --oneline --all
六、改变提交作者
更改最后一次提交的作者。
# 修改提交信息并指定新作者
git commit --amend --author="New Author <newauthor@example.com>"
七、检查已暂存更改的差异
使用 git diff
比较不同阶段的文件。
# 查看已暂存但尚未提交的更改
git diff --staged
八、通过二分法查找引入错误的提交
使用 git bisect
来定位引入错误的提交。
# 开始二分查找
git bisect start
# 标记当前提交为有问题的
git bisect bad
# 标记已知良好的提交
git bisect good <commit-hash>
Git 将会通过提交历史来识别问题提交。
九、通过重基底清理提交历史
为了清晰起见,重基底可以重写你的提交历史。
# 编辑、合并或重新排序最近三次提交
git rebase -i HEAD~3
十、选择性提取特定提交
想从另一个分支提取一个特定的提交?
# 提取特定的提交
git cherry-pick <commit-hash>
十一、列出所有分支(本地和远程)
查看可用的分支。
# 列出所有本地与远程分支
git branch -a
十二、清理未跟踪的文件和目录
快速移除 Git 不跟踪的不需要的文件。
# 删除所有未跟踪的文件和目录
git clean -fd
?? 使用 -n
进行预览以查看将被删除的内容:
# 干运行模式,仅显示将要执行的操作
git clean -n
十三、跟踪上游分支
保持本地分支与远程分支同步。
# 将本地分支设置为跟踪远程分支
git branch --set-upstream-to=origin/main
十四、通过交互式重基底合并提交
将多个提交合并成一个。
# 合并指定数量的提交
git rebase -i HEAD~n # 替换 'n' 为你想合并的提交数
十五、查看特定提交中的文件状态
检查某个特定提交中文件的状态。
# 显示特定提交中文件的内容
git show <commit-hash>:path/to/file
十六、提交后编辑 .gitignore
文件
如果忘记忽略某些文件,可以更新 .gitignore
文件。
# 在 .gitignore 文件中添加忽略的文件夹
echo "node_modules/" >> .gitignore
# 移除暂存区中的文件夹
git rm -r --cached node_modules/
# 提交新的 .gitignore 文件
git commit -m "Update .gitignore"
十七、撤销已推送的提交
撤销特定提交的更改而不改变历史。
# 撤销特定的提交
git revert <commit-hash>
十八、仅获取元数据
不想下载整个仓库的数据?
# 模拟获取操作,查看将要获取的数据
git fetch --dry-run
十九、归因于代码的一行
找出特定文件中某一行是谁写的。
# 查看某行代码的作者
git blame path/to/file
二十、将文件重置到最后一次提交的状态
丢弃某个特定文件的本地更改。
# 丢弃某个文件的所有本地更改
git checkout -- path/to/file
这些 Git 命令行技巧可以帮助你在独自开发或是团队协作时让开发过程更顺畅。尽管 GUI 工具提供便利,但掌握 Git 命令行提供了更多的控制权。尝试这些命令,并提升你的 Git 技能!