Git
是开发者必备的版本控制工具。虽然图形用户界面(GUI
)工具可以简化一些任务,但掌握 Git
命令行能提供更深的控制、灵活性和速度。以下是每位开发者应知的24个 Git
命令行技巧,以优化他们的工作流程。
-
设置全局配置
确保你的提交使用正确的身份进行标记。
git config --global user.name "Your Name" git config --global user.email "you@example.com"
💡 提示:使用
--local
而不是--global
来设置项目特定的配置。 -
撤销最后一次提交(保留更改)
如果你在最后一次提交中犯了错误,可以撤销它。
git reset --soft HEAD~1
-
修改最后一次提交
忘记包含某个更改或想更新提交信息吗?
git add . git commit --amend -m "更新的提交信息"
这会更新之前的提交,而不创建新的提交。
-
暂存未提交的更改
需要在不提交的情况下快速切换分支吗?
git stash
💡 稍后可以使用以下命令恢复暂存的更改:
git stash pop
-
以图形方式查看提交历史
可视化提交历史使理解项目状态变得更加容易。
git log --graph --oneline --all
-
更改提交作者
更改最后一次提交的作者。
git commit --amend --author="New Author <newauthor@example.com>"
-
检查暂存更改的差异
使用
git diff
比较不同阶段的文件差异。git diff --staged
这将显示已暂存但尚未提交的更改。
-
使用
bisect
查找bug
使用
git bisect
找到引入bug
的提交。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 branch --set-upstream-to=origin/main
-
使用交互式变基合并提交
将多个提交合并为一个。
git rebase -i HEAD~n # 将 'n' 替换为提交的数量
-
查看特定提交中的文件
检查特定提交中某个文件的状态。
git show <commit-hash>:path/to/file
-
提交后编辑
.gitignore
文件如果你忘记忽略某些文件,可以更新
.gitignore
文件。echo "node_modules/" >> .gitignore git rm -r --cached node_modules/ git commit -m "更新 .gitignore"
-
撤销已推送的提交
撤销特定提交的更改而不更改历史记录。
git revert <commit-hash>
-
仅获取元数据
想避免拉取整个仓库吗?
git fetch --dry-run
这让你可以查看将要拉取的内容,而无需实际下载数据。
-
追踪代码行的来源
找出文件中特定行的作者。
git blame path/to/file
-
将文件重置为上一个提交状态
丢弃特定文件的本地更改。
git checkout -- path/to/file
-
重置到指定提交
使用
git reset --hard [commit-hash]
可以将当前分支重置到指定的提交状态,丢弃所有后续的更改。注意,这将永久删除未保存的更改。git reset --hard [commit-hash]
-
为暂存的更改添加消息
使用
git stash -m 'message'
可以为暂存的更改添加描述性消息,方便后续查看和管理。git stash -m '库更新'
-
创建标签以标记特定提交
使用标签来标记特定的提交,便于版本管理。
git tag your_tag
这将为当前的提交创建一个名为
your_tag
的标签。标签通常用于标记版本或重要的里程碑。 -
查看引用日志以跟踪所有操作
使用
git reflog
可以查看所有引用的日志记录,帮助追踪历史操作。git reflog
这将显示所有的
HEAD
移动记录,包括已经丢弃的提交,便于恢复到之前的状态。
这24个 Git
命令行技巧可以使你的开发过程更加顺畅,无论是独立工作还是团队合作。虽然 GUI
工具提供了便利,但掌握 Git
命令行能让你对工作流程拥有更大的控制力。试试这些命令,提升你的 Git
技能吧!