本博客中的图片来自 Scott Chacon、Ben Straub 的“Pro Git”
在本博客中,您将了解有关您在编程中使用的 Git 中的一些日常功能的各种精彩事实!
开发人员很容易盲目使用工具而不知道它们在幕后是如何工作的。虽然这种抽象是为了更好,但了解事物如何工作有时可能是经验丰富的程序员和业余程序员之间的区别。
让我们深入了解一些很酷的事实!
如果你使用 Git 有一段时间了,你应该了解 git status。但是,您是否知道有一个选项可以获得更易读且最小的状态输出?
通过使用短状态标志,-s,您可以获得更紧凑的格式。
$ git status -s M README MM Rakefile A lib/git.rb M lib/simplegit.rb ?? LICENSE.txt
您会注意到输出的左侧部分有 2 列。左栏代表暂存区的状态,右栏代表工作树的状态。操作顺序也按时间顺序从左到右表示。
让我们解释一下上面的输出:
如果您想暂存跟踪的文件并在一个命令中提交所有文件怎么办?
您可以通过使用 git commit -a -m "message".
来做到这一点请注意,不幸的是,未跟踪的文件(新创建的文件)将不会使用这个神奇的命令进行暂存。
使用git log按时间倒序列出存储库中所做的提交(最近的提交首先显示)。
有多种选项允许您自定义输出。让我们回顾一些有用的:
当你想取消暂存文件时,请使用git reset HEAD 。当你想要取消修改已修改的文件时,请使用git checkout -- {file}。
现在有一种更简单的方法可以做到这两点! Git 版本 2.23.0 引入了 git Restore,它带来了取消暂存和取消修改文件的二合一功能。
作为程序员,您很可能至少使用过一次 git pull。此外,您很可能听说过 git fetch 但从未真正需要使用它。好吧,我们来谈谈它实际上做了什么以及它与 git pull 有何不同。
您可以将 fetch 视为 pull 中发生的事情的第一步。
在拉取中,我们从远程存储库下载所有数据并将其传输到本地存储库。这就是 fetch 的作用。
此时,您的本地存储库已拥有数据,但尚未将其与工作目录合并,以便您可以处理最新的更改。拉取的下一步是与您的分支合并,以便最新的更改位于您的工作目录中。
因此,pull 一次获取并合并所有内容,而 fetch 只执行第一步。
如果我告诉你有一种方法可以让你的 git 命令可定制怎么办?通过git config,就可以!
您可以为常用命令设置别名,如下所示:
$ git config --global alias.co checkout $ git config --global alias.br branch $ git config --global alias.ci commit $ git config --global alias.st status
现在,您只需输入 git ci.,而不是输入 git commit
这对于帮助使特定任务更加直观的命令特别有用。
$ git config --global alias.unstage 'reset HEAD --' # the double dash serves as an option separator. # It tells Git to treat anything after it as a filename
上面的命令使以下命令等效:
添加 last 命令来查看最近的提交也是很常见的:
$ git config --global alias.last 'log -1 HEAD'
这就是本博客的全部内容!我希望您在下一个使用 Git 的项目中学到了一些巧妙的技巧,这将提高您的工作流程的质量。感谢您的阅读!
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3