每个开发人员必须知道的 10 个 Git 命令
了解 Git 和 GitHub 对任何开发者来说都至关重要,它们能够提供有效的版本控制和代码管理。熟练掌握这些工具能让你脱颖而出,并提升你的工作效率。在本篇博文中,我们将探索一组 Git 命令,助你开启软件开发之旅。
Git 词汇
在深入研究命令之前,我们先来熟悉一些 Git 术语。这些理解不仅能帮助你更好地掌握 Git,还能为你的整体理解打下基础。
存储库
存储库或 repo 用作存储空间,用于存储项目的源代码及其版本历史记录。
工作目录
工作目录是您当前对项目进行更改的地方,其中包含您正在处理的文件。
分期
暂存区是仓库和工作目录之间的中间区域。您可以在此添加更改,然后再将其提交到主仓库。
犯罪
提交是阶段提议更改的快照,由唯一标识符(SHA-1 哈希)标识并附有提交消息。
分支
分支代表存储库的并行版本,可独立促进不同功能或错误修复的工作。
合并
合并涉及将建议的更改合并到主存储库中,通常用于将新功能集成到主项目中。
拉
拉取是指从任何远程存储库获取代码并将其合并到本地存储库(即工作目录)中。
推
推送涉及将本地更改发送到任何存储库的任何远程分支。
克隆
克隆是创建主存储库的本地副本的过程,建立连接以实现高效的拉取和推送。
拿来
提取操作会将任何远程仓库的更改下载到本地仓库,而不会直接将其合并到本地仓库。此功能有助于在合并之前检查更改。
叉
分叉会在您的 GitHub 帐户上创建其他人存储库的个人副本,从而无需影响原始存储库即可进行更改。
冲突
当两个或多个分支的同一部分代码发生变化,而 Git 无法直接合并它们时,就会发生冲突。
头
在 Git 中,HEAD 是一个指针/引用,始终指向当前分支中的最新提交。当你进行新的提交时,HEAD 会移动到该提交的顶部。
现在,让我们逐一探索这 10 个 Git 命令。
1 - 添加并提交文件
传统上,在 Git 中,我们使用git add *
命令暂存所有修改过的文件,以便后续提交。随后,我们使用git commit -m "commitMessage"
命令提交这些更改。但是,有一个更精简的命令,只需一步即可完成这两个任务:
git commit -am "commitMessage"
该-am
标志允许我们暂存这些更改并通过一次有效的操作提交它们。
2 - 创建并切换到 Git 分支
与上一个场景类似,另一个命令结合了两个命令的功能。无需使用单独的命令,而是使用以下命令git branch branchName
创建分支并git checkout branchName
切换到该分支。使用以下命令一步完成这两项任务:
git checkout -b branchName
-b
带有命令的标志允许git checkout
我们创建一个新分支并立即切换到它。
3 - 删除 Git 分支
要在 Git 中删除分支,请使用git branch -d
或git branch -D
命令。-d
选项用于安全删除,仅当分支完全合并到当前分支时才删除该分支。-D
选项用于强制删除,无论分支是否完全合并。 命令如下:
安全删除(检查合并):
git branch -d branchName
强制删除(不检查合并):
git branch -D branchName
4 - 重命名 Git 分支
要重命名分支,请使用git branch -m
命令,后跟当前分支名称和新的所需分支名称。例如,要重命名名为oldBranch
to 的分支newBranch
,请运行:
git branch -m oldBranch newBranch
如果要重命名当前工作的分支,而不指定旧名称,请使用以下命令:
git branch -m newBranchName
这里,您不需要指定旧的分支名称,因为 Git 会假定您想要将当前分支重命名为新名称。
5 - 取消暂存特定文件
有时,你可能希望从暂存区移除某个文件,以便在提交之前进行其他修改。使用:
git reset filename
这将取消暂存该文件,同时保持您的更改不变。
6 - 放弃对特定文件的更改
要完全放弃对特定文件所做的更改并将其恢复到上次提交的状态,请使用:
git checkout -- filename
此命令可确保文件恢复到其先前状态,并撤消最近的修改。这是一种在不影响其他更改的情况下重新开始特定文件的有效方法。
7 - 更新你的最后一个 Git 提交
假设你刚刚在 Git 仓库中提交了一次,但后来你意识到你忘记在提交中包含一项更改,或者你想修复提交消息本身。你不想为这个小更改创建一个全新的提交,而是想将其添加到之前的提交中。这时你可以使用以下命令:
git commit --amend -m 'message'
此命令修改您所做的最新提交,将任何暂存的更改与您的新评论相结合以创建更新的提交。
需要记住的是,如果您已经将提交推送到远程仓库,则需要使用 强制推送git push --force
来更新远程分支。标准git push
操作是将新的提交附加到远程仓库,而不是修改上一次提交。
8 - 存储更改
假设您正在两个不同的分支 A 和 B 上工作。在分支 A 中进行更改时,您的团队要求您修复分支 B 中的错误。当您尝试使用 切换到分支 B 时git checkout B
,Git 会阻止您,并显示错误:
我们可以按照错误信息的建议提交更改。但是提交
更像是一个固定的时间点,而不是一个正在进行的工作。这时,我们可以应用错误消息的第二个建议,并使用存储功能。使用以下命令存储您的更改:
git stash
git stash
暂时保存您尚未准备好提交的更改,允许您切换分支或执行其他任务而无需提交未完成的工作。
要重新应用分支中存储的更改,请使用git stash apply
或git stash pop
。这两个命令都会恢复最新的存储更改。应用存储只会恢复更改,而弹出存储则会恢复更改并将其从存储中移除。您可以在此处阅读更多有关存储的信息。
9 - 恢复 Git 提交
假设您正在处理一个 Git 项目,发现某个提交引入了一些不必要的更改。您需要撤消这些更改,并且不从历史记录中删除该提交。请使用以下命令撤消该提交:
git revert commitHash
这是一种安全且无损的方法来纠正项目中的错误或不必要的更改。
例如,假设您有一系列提交:
- 提交A
- 提交 B(此处引入了不良更改)
- 提交 C
- 提交 D
要撤销提交 B 的效果,请运行:
git revert commitHashOfB
Git 将创建一个新的提交,我们称之为提交 E,它将否定提交 B 引入的更改。提交 E 将成为分支中的最新提交,并且项目现在反映的是提交 B 从未发生过的状态。
如果您想知道如何检索提交哈希,使用 很简单git reflog
。在下面的屏幕截图中,突出显示的部分代表您可以轻松复制的提交哈希:
10 - 重置 Git 提交
假设你已对项目进行了一次提交。然而,检查后,你意识到需要调整或完全撤消上次提交。针对这种情况,Git 提供了以下强大的命令:
软复位
git reset --soft HEAD^
使用 时git reset --soft HEAD^
,您正在执行软重置。此命令允许您回溯到上次提交,同时保留暂存区中的所有更改。简而言之,使用此命令,您可以轻松取消提交,同时保留代码更改。当您需要修改上次提交,例如在再次提交之前添加更多更改时,它非常方便。
混合复位
git reset --mixed HEAD^
git reset HEAD^
这是在未指定--soft
或 的情况下使用 的默认行为--hard
。它会取消提交最后一次提交,并从暂存区中删除其更改。但是,它会将这些更改保留在工作目录中。当您想取消提交最后一次提交并从头开始进行更改,同时在重新提交之前将这些更改保留在工作目录中时,这很有用。
硬重置
git reset --hard HEAD^
现在,我们来谈谈git reset --hard HEAD^
。它会彻底删除 Git 历史记录中的最后一个提交以及所有相关更改。使用--hard
flag 后,将无法恢复。因此,当您想要永久丢弃最后一个提交及其所有更改时,请务必谨慎使用此功能。
感谢您的阅读。希望这篇文章对您有所帮助,并让您学到一些新命令。如果您还有其他问题,请随时联系我们。欢迎分享您在日常工作中常用且觉得非常实用的 Git 命令。:)
文章来源:https://dev.to/mukeshkuiry/10-must-know-git-commands-for-software-engineers-3733