0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何用Bash别名和Git编辑器配置来逃避Vim以节省时间

Linux爱好者 来源:lp 2019-03-26 14:24 次阅读

本文讨论的是开发人员、数据科学家或产品经理应该了解的各种 Git 命令。我们将了解该如何用 Git 进行检查、删除和整理操作。我们还将介绍如何用 Bash 别名和 Git 编辑器配置来逃避 Vim 以节省时间。

如果你不熟悉基本的 git 命令,在阅读本文前可以先参考我之前写的关于 Git 工作流程的文章。

地址:

https://towardsdatascience.com/learn-enough-git-to-be-useful-281561eef959

本文介绍了 10 个常见的命令以及它们的一些参数。每个命令都可以链接到该命令的 Atlassian Bitbucket 指南。

检查

先了解一下如何检查改动痕迹。

git diff——查看所有本地文件的改动。只改动一个文件的话可以在命令后添加文件名。

git log——查看所有提交历史。还可用于带有 git log –p my_file 的文件,输入 q 退出。

git blame my file——了解谁在什么时候对 my_file 做了什么样的改动。

gitreflog——显示本地代码库 HEAD 的更改日志。这个命令很适合查找丢失的工作。

用 Git 进行检查并不麻烦。相比之下,Git 中有不少删除和撤销提交以及文件改动的操作。

撤销

可以用 git reset、git checkout 和 git revert 撤销在代码库中所做的改动,这些命令可能有点难理解。

git reset 和 git checkout 既可用于提交也可用于单个文件的修改,而 git revert 只能用在提交层面。如果你只需要处理尚未合并到协作远程工作的本地提交,你可以使用这三者中任何一条命令。如果是协同工作且需要撤销远程分支中的提交,那么就用 git revert。

这些命令中的每一条都有多个参数。以下是常见的用法:

git reset –-hard HEAD——撤销最近提交以来暂存区和非暂存区的改动。

指定不同的提交而不是 HEAD,以撤销自这条提交以来的更改。--hard 指的是撤销暂存区和非暂存区的更改。

要确保你撤销的不是协作伙伴所依赖的远程分支的提交。

git checkout my commit——从 my_commit 中撤销非暂存区的改动。

HEAD 常用在 my_commit,用来撤销最近一次提交以来在本地工作目录的改动。

checkout 最适合用于仅限于本地的撤销。它不会破坏你的协作伙伴所依赖的远程分支的提交历史。

如果你将 checkout 用在分支而不是提交上,HEAD 将会切换到指定分支,并更新成匹配的工作目录。这是 checkout 命令更常见的用法。

Git revert my commit——撤销 my_commit 中的更改。当用 revert 撤销改动时,它会产生新的提交。

对协作项目而言,revert 是很安全的,因为它不会覆盖其他用户分支可能依赖的历史记录。

revert 很安全。

有时候你只想删除本地目录中的未追踪文件。例如,也许你运行的代码在版本库中创建了许多你不需要的不同类型的文件。你可以一键清除它们!

Git clean –n——删除本地工作目录中的未追踪文件。

–n 表示试运行,在试运行中什么都不会删除。

-f 表示实际删除文件。

-d 表示删除未追踪的目录。

默认情况下不会删除 .gitignore 中的未追踪文件,但这种行为是可以更改的。

现在你已经知道了 Git 中用于撤销操作的命令,接下来我们再看两条可以有序排列文件的命令。

整理

Git commit –amend——将暂存区的更改添加到最近一次提交中。

如果暂存区中什么都没有,你可以用该命令编辑最新的提交信息。只有在提交尚未整合到远程主分支中时才使用该命令!

Git push my remote –tags——将所有本地标记发送到远程版本库中。适用于版本变更。

如果你用的是 Python,并希望更改你所构建的包,bump2version 会自动为你创建标签。一旦将标签推送出去,你就可以在自己的版本中使用了。这里有一篇我的指南,可以指导你完成第一个 OSS Python 包。跟紧我,确保你不会错过版本控制的部分!

指南:https://towardsdatascience.com/build-your-first-open-source-python-project-53471c9942a7?source=friends_link&sk=576540dbd90cf2ee72a3a0e0bfa72ffb

求助,我被困在 Vim 中出不去了!

使用 Git 时,你可能偶尔会发现自己被困在 Vim 会话中了。例如,你试着在没有提交信息的情况下提交,Vim 会自动开启。如果你不知道 Vim 的话,这种情况糟糕透了——在这个关于如何摆脱这一困境的 Stack Overflow 回答下有超过 4,000 的投票。

以下四步用于在已保存的文件中逃离 Vim:

1. 按 i 进入插入模式

2. 在第一行输入你的提交信息

3. 按下退出键——Esc

4. 输入 :x。别忘了冒号(colon)。

更改默认编辑器

为了避免使用 Vim,可以更改 Git 中的默认编辑器。以下是更改我使用的编辑器 Atom 的默认值的命令:

gitconfig--globalcore.editor"atom--wait"

假设你已经安装了 Atom,你现在就可以在 Atom 中解决 Git 问题了。

创建 Git 命令的快捷键

在 .bash_profile 中添加以下 alias 命令可以给 Git 命令添加快捷键:

aliasgs='gitstatus'aliasga='gitadd'aliasgaa='gitadd-A'aliasgb='gitbranch'aliasgc='gitcommit'aliasgcm='gitcommit-m'aliasgo='gitcheckout'

你可以调整上述命令,来为任何 Git 命令添加快捷键。

如果你没有 .bash_profile,你可以用以下命令在 macOS 上创建一个:

touch~/.bash_profile

打开该文件:

open~/.bash_profile

更多关于 .bash_profile 相关信息,请参阅:https://stackoverflow.com/a/30462883/4590385

现在你在终端键入 gs 的效果和键入 git status 的效果是一样的。注意,在终端中你可以输入快捷键后再输入其它标记。

你也可以使用 Git 的别名,但这要求你在输入快捷键命令之前先输入 git。谁会需要这些额外的按键呢?

总结

本文介绍了许多关键的 Git 命令,还介绍了如何配置环境,这帮你节省了一些时间。现在你有了 Git 和 GitHub 的基础,准备好进行下一步了吗?

想要更深入地了解,请参阅这篇 Bitbucket Git 教程

https://www.atlassian.com/git/tutorials/learn-git-with-bitbucket-cloud

这里还有一篇关于 Git 分支的交互式指南:

https://learngitbranching.js.org/

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编辑器
    +关注

    关注

    1

    文章

    803

    浏览量

    31132
  • Git
    Git
    +关注

    关注

    0

    文章

    196

    浏览量

    15741
  • GitHub
    +关注

    关注

    3

    文章

    467

    浏览量

    16392

原文标题:你可能不太会用的 10 个 Git 命令

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    linux中vi、vim编辑器常用的技巧

    今天浩道跟大家分享硬核干货,关于linux中vi、vim编辑器常用的技巧!
    发表于 09-21 14:04 588次阅读

    常用编辑器Vim编辑器

    在Linux下我们对文本进行编辑,经常用到的编辑器就是Vi/Vim,Vi/Vim命令众多,功能强大,是大多数Linux程序员选择使用的编辑器
    发表于 08-22 09:48

    嵌入式学习-常用编辑器Vim编辑器

    在Linux下我们对文本进行编辑,经常用到的编辑器就是Vi/Vim,Vi/Vim命令众多,功能强大,是大多数Linux程序员选择使用的编辑器
    发表于 08-23 09:12

    群里ucos资料总结,为大家节省时间,大多都在这啦

    群里ucos资料总结,为大家节省时间,大多都在这啦
    发表于 09-13 23:43

    Linux下怎么使用vim编辑器

    Vim是Linux操作系统中最常用一个编辑器。如配置文件的更改、环境变量的设置等等基本上都是在这个vim编辑器上完成。所以这是Linux系统
    发表于 04-03 07:22

    USART使用DMA时可以节省时间吗?

    USART使用DMA时可以节省时间吗?
    发表于 12-02 07:21

    vim Linux文本编辑器

    vimLinux文本编辑器vim——最强大的文本编辑器——摆脱鼠标vi—vim—gvim三种模式:①命令模式:yy(复制)、p(粘贴)、dd(删除)、u(恢复)②插入模式:i/a(进
    发表于 12-15 06:30

    学会使用和如何配置vim功能最强大文本文件编辑器

    一.vim(文本编辑器):学会使用和如何配置vimvim功能最强大文本文件编辑器,可以摆脱鼠标。vi—vim----gvim;命令行模式(n
    发表于 12-15 09:18

    学会使用和如何配置vim文本编辑器

    学会使用和如何配置vim文本编辑器?动态库和静态库及使用和区别是什么?
    发表于 12-23 08:49

    通过节省时间和成本的创新技术降 低电源中的EMI

    通过节省时间和成本的创新技术降 低电源中的EMI分析了开关模式电源中的 EMI,并提供了一些可帮助设计人员快速且轻松地通过业界通用 EMI 测试的技术什么是 EMI? EMI 是一种电磁
    发表于 01-25 18:48

    VIM编辑器学习

     Vim是一个类似于Vi的文本编辑器,不过在Vi的基础上增加了很多新的特性,Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。 
    发表于 08-11 16:58 989次阅读

    通过节省时间和成本的创新技术降低电源中的EMI

    通过节省时间和成本的创新技术降低电源中的EMI。
    发表于 06-09 09:53 20次下载

    你会使用 Linux 编辑器 vim 吗?

    vim:是一款编辑器,只负责写代码;相当于 windows 的记事本;
    的头像 发表于 05-10 18:21 836次阅读
    你会使用 Linux <b class='flag-5'>编辑器</b> <b class='flag-5'>vim</b> 吗?

    vim编辑器如何使用

    Vim编辑器是一个功能强大的文本编辑器,它基于Vi进行改进,并增加了许多新特性。Vim编辑器的使用主要涉及其不同的工作模式及相应操作。以下是
    的头像 发表于 08-30 14:58 389次阅读

    vim编辑器命令模式使用方法

    Vim编辑器是一款功能强大的文本编辑器,广泛应用于程序员和开发者的日常工作中。Vim编辑器拥有多种模式,其中命令模式(Command mod
    的头像 发表于 08-30 15:01 363次阅读