五个提升你的 Git 水平的命令

开发
Git 有诸多特性,你不必全部使用,但是如果你正在深入研究 Git 的 子命令subcommands,我这里倒是有几个,或许你会觉得有用。

  • 将这些命令加入到你的工作流中,使 Git 发挥更大的作用。

如果你经常使用 Git,你可能会知道它非常有名。它可能是最受欢迎的版本控制方案,它被一些 最大的软件项目 用来 跟踪文件变更。Git 提供了 健壮的界面 来审阅代码、把实验性的变更合并到已经存在的文件中。得益于 Git 钩子,它以灵活性而闻名。同时,也因为它的强大,它给人们留下了一个“复杂”的印象。

Git 有诸多特性,你不必全部使用,但是如果你正在深入研究 Git 的 子命令subcommands,我这里倒是有几个,或许你会觉得有用。

1、找到变更

如果你已经熟悉 Git 的基本指令(fetch、add、commit、push、log 等等),但是希望学习更多,那么从 Git 的检索子命令开始是一个简单安全的选择。检索你的 Git 仓库(你的 工作树)并不会做出任何更改,它只是一个报告机制。你不会像使用 git checkout 一样承担数据完整性的风险,你只是在向 Git 请求仓库的当前状态和历史记录而已。

git whatchanged 命令(几乎本身就是一个助记符)可以查看哪些文件在某个提交commit中有变更、分别做了什么变更。它是一个简单的、用户友好的命令,因为它把 show、diff-tree 和 log 这三个命令的最佳功能整合到了一个好记的命令中。

2、使用 git stash 管理变更

你越多地使用 Git,你就会使用 Git 越多。这就是说,一旦你习惯了 Git 的强大功能,你就会更频繁地使用它。有时,你正在处理一大堆文件,忽然意识到了有更紧急的任务要做。这时,在 git stash 的帮助下,你就可以把所有正在进行的工作收集起来,然后安全地暂存stash它们。当你的工作空间变得整洁有序,你就可以把注意力放到别的任务上,晚些时候再把暂存的文件重新加载到工作树里,继续之前的工作。

3、使用 git worktree 来得到链接的副本

当 git stash 不够用的时候,Git 还提供了强大的 git worktree 命令。有了它,你可以新建一个 链接的 仓库副本clone,组成一个新分支,把 HEAD 设置到任意一个提交上,然后基于这个分支开始你的新工作。在这个链接的副本里,你可以进行和主副本完全不同的任务。这是一个避免意外的变更影响当前工作的好办法。当你完成了你的新工作,你可以把新分支推送到远程仓库;也可以把当前的变更归档,晚些时候再处理;还可以从别的工作树中获取它们的变更。无论选择哪一种,你的工作空间之间都会保持相互隔离,任一空间中的变更都不会影响其他空间中的变更,直到你准备好了要合并它们。

4、使用 git cherry-pick 来选择合并

这可能听起来很反直觉,但是,你的 Git 水平越高,你可能遇到的合并冲突就会越多。这是因为合并冲突不一定是错误的标志,而是活跃的标志。在学习 Git 中,适应合并时的冲突,并学会如何解决它们是非常重要的。通常的方式或许够用,但是有时候你会需要更加灵活地进行合并,这时候就该 git cherry-pick 出场了。遴选操作允许你选择部分合并提交,这样一来你就不需要因为一些细微的不协调而拒绝整个合并请求了。

5、使用 Git 来管理 $HOME

使用 Git 来管理你的主目录从来没有这么简单过,这都要归功于 Git 可以自由选择管理对象的能力,这是一个在多台计算机之间保持同步的现实可行的选项。但是,想要让它工作顺利,你必须非常明智且谨慎才行。如果你想要了解更多,点击阅读我写的关于 使用 Git 来管理 $HOME 的小技巧。

更好地使用 Git

Git 是一个强大的版本控制系统,你使用得越熟练,就可以越轻松地借助它来完成复杂的任务。

责任编辑:未丽燕 来源: Linux中国
相关推荐

2014-08-20 10:02:54

GitGit能力

2021-07-19 22:51:28

Python开发编程

2019-03-28 14:30:21

代码开发命令

2009-11-17 11:48:56

IT服务管理

2011-04-19 15:24:26

jQueryJavaScript插件

2023-11-01 08:22:07

Spring发布器源对象

2021-12-14 10:08:57

编程语言PythonJava

2014-08-18 14:54:54

Git

2023-04-26 19:33:01

Linux命令

2019-03-22 08:00:01

Git命令GitHub

2024-11-01 07:30:00

2020-04-06 12:20:51

Vim文本编辑器Linux

2012-03-31 11:09:24

ITWindows

2014-05-06 10:31:21

KillallLinux命令行

2024-06-13 09:50:45

2009-07-20 09:10:35

编程水平提升

2021-08-25 15:32:47

脚本程序参数任务

2024-01-11 12:17:28

Linux系统命令

2013-08-23 09:28:37

GitGit 命令

2024-09-29 13:25:56

点赞
收藏

51CTO技术栈公众号