如果你经常使用 Git,你可能知道它有几个名声。它可能是最流行的版本控制解决方案,并被一些最大的软件项目使用,以跟踪文件的更改。它提供了一个强大的界面来审查和将实验性更改合并到现有文档中。它以其灵活性而闻名,这要归功于Git 钩子。部分由于其强大的功能,它赢得了复杂性的声誉。
你不必使用 Git 的所有众多功能,但如果你希望深入研究 Git 的子命令,以下是一些你可能会觉得有用的命令。
1. 找出更改的内容
如果你熟悉 Git 的基础知识(fetch
、add
、commit
、push
、log
等),但你想了解更多信息,查询 Git 子命令是一个很好的、安全的地方开始。查询你的 Git 仓库(你的工作树)不会进行任何更改;它只是一个报告机制。你不会冒 Git 检出完整性的风险;你只是在询问 Git 的状态和历史记录。
git whatchanged 命令(几乎本身就是一个助记符)是查看提交中更改内容的简单方法。作为一个非常用户友好的命令,它将 show
、diff-tree
和 log
的最佳功能压缩到一个易于记忆的命令中。
2. 使用 git stash 管理更改
你使用 Git 的次数越多,你就越使用 Git。也就是说,一旦你熟悉了 Git 的强大功能,你就会更频繁地使用其强大的功能。有时,你可能会发现自己正在处理一批文件,这时你意识到另一项任务更紧急。使用 git stash,你可以收集所有正在进行的工作,并将它们存放起来以备安全。在你的工作区清理干净后,你可以将注意力转向其他任务,然后在稍后将存放的文件重新应用到你的工作树中以恢复工作。
3. 使用 git worktree 创建链接副本
当 git stash
不够用时,Git 还提供了强大的 git worktree 命令。使用它,你可以创建仓库的一个新的但链接的克隆,形成一个新的分支并将 HEAD
设置为你想要作为新工作基础的任何提交。在这个链接的克隆中,你可以处理与你的主克隆关注的任务无关的任务。这是使你的工作进展免受意外更改影响的好方法。当你完成新的工作树后,你可以将你的新分支推送到远程仓库,将更改捆绑到存档中以供以后使用,或者只是从你的另一个树中获取更改。无论你做出什么决定,你的工作区都保持分离,并且一个工作区中的更改不必影响另一个工作区中的更改,直到你准备好合并。
4. 使用 git cherry-pick 选择合并
这可能看起来违反直觉,但是你 Git 掌握得越好,你可能遇到的合并冲突就越多。这是因为合并冲突不一定是错误的迹象,而是活动的迹象。熟悉合并冲突以及如何解决它们是学习 Git 的重要一步。通常的方法效果很好,但有时你需要在合并方式上具有更大的灵活性,为此,可以使用 git cherry-pick。Cherry-pick 合并允许你选择性地合并提交的哪些部分,因此你永远不必因为微不足道的不一致而拒绝合并请求。
5. 使用 Git 管理 $HOME
使用 Git 管理你的主目录从未如此简单,并且由于 Git 能够选择性地管理内容,因此它成为保持计算机同步的现实选择。但是,为了使其良好地工作,你必须明智地执行它。要开始使用,请阅读我的关于使用 Git 管理 $HOME 的技巧。
更好地掌握 Git
Git 是一个强大的版本控制系统,你越熟悉它,就越容易将其用于复杂的任务。今天尝试一些新的 Git 命令,并在评论中分享你最喜欢的命令。
评论已关闭。