Git 入门:掌握 Git,度过你的第一个月 🚀

💡 原文英文,约1100词,阅读约需4分钟。
📝

内容提要

本文介绍了Git的基本操作和高级命令,包括git init、git clone、git status、git add、git commit、git push、git pull等。还介绍了git log、git reflog、git merge、git rebase、git fetch、git reset、git cherry-pick和Git别名。这些命令帮助用户更好地控制项目。

🔎

延伸解读

合并与变基:历史记录的取舍

git merge 会创建一个合并提交,保留完整的分支历史,适合需要清晰追溯的场景。而 git rebase 将当前分支的提交移动到目标分支之上,使历史呈线性,更整洁。但变基会重写提交历史,如果分支已推送到远程,可能给协作者带来麻烦。文章提到互联网对两者有强烈偏好,实际选择应基于团队约定和项目需求。

git reflog:你的本地撤销安全网

git reflog 记录了本地仓库中 HEAD 的每一次移动,即使 git log 无法显示。当你误用 git reset --hard 丢失提交时,可以通过 git reflog 找到操作前的状态,并用 git reset --hard HEAD@{2} 恢复。这相当于一个本地的“撤销”功能,但注意它只记录本地操作,且默认保留一段时间,并非永久。

git fetch 与 git pull 的关键区别

git fetch 只从远程仓库下载最新历史到本地,不会自动合并到当前工作分支,让你可以先用 git diff origin/main 查看差异,再决定是否合并。而 git pull 相当于 git fetch 加 git merge,会直接更新你的工作区。如果你希望更可控地处理远程变更,fetch 是更安全的选择。

别名:提升日常效率的小技巧

通过 git config --global alias.xx 命令,你可以为常用操作设置简短别名,例如 st 代表 status、co 代表 checkout、lg 代表带图形的单行日志。文章还展示了 gwip 和 gunwip 这类组合别名,用于快速保存和恢复工作进度。合理使用别名能减少重复输入,但建议只对熟悉且安全的命令设置别名,避免混淆。

Q&A

Git的基本工作流程包括哪些命令?

Git的基本工作流程包括git init、git clone、git status、git add、git commit、git push和git pull。

如何使用git log查看代码历史?

可以使用git log按作者、文件或时间范围筛选历史记录,例如:git log --author='Your Name'或git log --since='2 weeks ago'。

git reflog有什么用?

git reflog用于恢复意外删除的提交,能够追踪每一次更改,即使git log无法帮助时也能找回。

git merge和git rebase有什么区别?

git merge用于合并两个分支并创建合并提交,保留完整历史;而git rebase则将一个分支移动到另一个分支上,使历史更清晰。

如何使用git cherry-pick选择性地应用提交?

可以使用git cherry-pick <commit-hash>来选择性地应用某个提交,而不合并整个分支。

git reset有哪些不同的重置方式?

git reset有三种方式:软重置(保留更改)、混合重置(取消提交但保留更改)、硬重置(删除所有更改)。

🏷️

标签

➡️

继续阅读