作者 | Jeff Hale

来源 | Towards Data Science

编辑 | 代码医生团队

在本文中,将讨论作为开发人员,数据科学家或产品经理应该了解的各种Git命令。将看看使用Git检查,删除和整理。还将讨论如何通过Bash别名和Git编辑器配置来逃避Vim并节省时间。

检查事物

先看一下检查变化。

  • git diff - 在本地查看所有文件更改。可以附加文件名以仅显示一个文件的更改。

  • git log- 查看所有提交历史记录。也可以用于文件git log -p my_file。输入q退出。

  • git blame my_file- 查看谁更改了my_file中的内容和时间。

  • git reflog- 显示本地存储库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-undo在变化的影响my_commit。revert 在撤消更改时进行新提交。

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

revert 是安全的

有时只想删除本地目录中未跟踪的文件。例如可能运行了一些代码,这些代码创建了许多在repo中不需要的不同类型的文件。可以快速清洁它们!

  • git clean -n - 删除本地工作目录中未跟踪的文件。

该-n标志用于干运行,其中没有任何内容被删除。

使用该-f标志实际删除文件。

使用 - d标志删除未跟踪的目录。

默认情况下,.gitignore未跟踪的文件不会被删除,但可以更改此行为。

现在已经了解了在Git中撤消事物的工具,再看两个命令来保持秩序井然有序。

整理事物

  • git commit --amend- 将暂存的更改添加到最近的提交中。

如果没有暂存,则此命令仅允许编辑最新的提交消息。如果提交尚未集成到远程主分支中,则仅使用此命令!

  • git push my_remote --tags - 将所有本地标签发送到远程仓库。适用于版本更改。

如果正在使用Python并对构建的软件包进行更改,那么bump2version将自动创建标记。推送标签后,可以在版本中使用它们。

https://pypi.org/project/bump2version/

帮助,我被困在Vim并且无法离开!

使用Git,可能偶尔会发现自己陷入了Vim编辑器会话。例如假设您尝试在没有提交消息的情况下提交 - Vim将自动打开。如果不了解Vim,- 在这个Stack Overflow回答中看到4,000+以上的投票,以了解如何摆脱它。

https://stackoverflow.com/a/11828573/4590385

自由!

以下是使用保存文件逃避Vim的四步计划:

  1. 按i进入插入模式。

  2. 在第一行输入您的提交消息。

  3. 按退出键 -Esc。

  4. 输入:x。不要忘记结肠。

更改默认编辑器

要完全避免使用Vim,可以在Git中更改默认编辑器。以下是包含常用编辑器命令的文档。这是更改我使用的编辑器默认值的命令,Atom:

https://www.atlassian.com/git/tutorials/setting-up-a-repository/git-config

git config --global core.editor "atom --wait"

假设安装了Atom,现在可以解决其中的Git问题。

为Git命令制作快捷方式

通过向.bash_profile添加以下别名来添加Git命令的快捷方式。

alias gs ='git
status'alias ga ='git
add'alias gaa ='git add -A'alias
gb ='git
branch'alias gc ='git
commit'alias gcm ='git commit -m'alias
go =' git checkout'

可以调整为喜欢的任何Git命令制作快捷方式。

如果没有。bash_profile,可以使用以下内容在macOS上创建一个:

touch ~/.bash_profile

然后打开它:

open ~/.bash_profile

在这里查看.bash_profile的 更多信息。

https://stackoverflow.com/a/30462883/4590385

现在,当输入gs终端时,它与输入相同git status。请注意可以在快捷方式后在终端中输入其他标记。

也可以创建Git别名,但这些别名要求git在快捷命令之前键入。

Wrap

在本文中,已经看到了一堆关键的Git命令,并配置了环境以节省时间。现在有了Git和GitHub的基础。准备下一步了吗?

  • 查看这个Bitbucket Git教程,深入了解。

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

  • 浏览Git分支的交互式指南。分支可能令人困惑,所以它绝对值得一看。

https://learngitbranching.js.org/

  • 学习并向别人解释差异。

希望这个介绍Git和GitHub很有用。如果喜欢请分享它。

关于图书

《深度学习之TensorFlow:入门、原理与进阶实战》和《Python带我起飞——入门、进阶、商业实战》两本图书是代码医生团队精心编著的 AI入门与提高的精品图书。配套资源丰富:配套视频、QQ读者群、实例源码、 配套论坛:http://bbs.aianaconda.com   。更多请见:aianaconda.com

git bash here创建项目无法选择m_你应该知道的10个Git命令相关推荐

  1. git bash here创建项目无法选择m_版本控制Git基础及使用详解

    1.Git简介 1.1.简介 Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git的读音为/gɪt/. Git是一个开源的分布式版本控制系统,用以有效.高速的处理 ...

  2. git bash here创建项目无法选择m_由GitLab用户切换引发的某程序员“暴动”,怒而开源项目源码...

    疯狂吐槽,咱也不知道为什么,原来GitHub用的好好的,我自己的项目也会上传到自己的码云,但是,谁想到,今天老大跟我说,让我把一个项目代码传到gitlab上,哎,又要切换账户了,所以,今天分享两部分内 ...

  3. git bash here创建项目无法选择m_git 版本控制初学者指南

    雷锋网 AI 科技评论按,如果你还不熟悉版本控制,现在是开始学习的时候了.这是一份基本的 Git 指南,从 0 开始学习可以打下良好的基础.几乎可以肯定都是,Git 在任何职业环境中都会用到,你越早熟 ...

  4. vue-cli创建第一个项目(用git bash解决上下键移动选择问题)

    vue-cli创建第一个项目(用git bash解决上下键移动选择问题) 参考文章: (1)vue-cli创建第一个项目(用git bash解决上下键移动选择问题) (2)https://www.cn ...

  5. 你需要知道的12个Git高级命令

    from: http://www.techug.com/git-advanced-commands?_biz=MjM5OTA1MDUyMA==&mid=407358558&idx=2& ...

  6. web项目开发人员配比_Web开发人员应该知道的10个别名

    开发人员和精通技术的人总是被数字所吸引,因此,数字缩写或基于数字的单词很快就受到他们的喜爱,这是理所当然的. 缩写词被用来缩写长单词,这些单词太麻烦了以至于无法一直准确地键入 . 如果缩写同时包含字母 ...

  7. Windows下Git Bash 远程仓库

    Git是分布式版本管理系统,同一个Git仓库,可以分布到不同的机器上.怎么分布呢?最早,肯定只有一台机器一个原始版本,伺候,别的机器可以"克隆"这个原始版本库,而且每台机器的版本其 ...

  8. Git使用总结(包含Git Bash和Git GUI的使用)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/KevinDGK/article/details/51606925 目录(?)[+] Git总结 简介 ...

  9. 从 git bash 命令行中窥探人生

    脚本之家 你与百万开发者在一起 众所周知,现实世界和计算机世界是不同的,但是计算机作为人类对现实世界的抽象模拟,在一定程度上,具备了现实世界的基本特征,本文将以哲学角度对比分析现实世界和计算机世界,试 ...

最新文章

  1. docker查看命令帮助手册
  2. redis中使用redis-dump导出、导入、还原数据实例
  3. wine mac 中文 方块乱码 解决
  4. Python_异常和模块
  5. Scrum与项目管理亲体验
  6. 联想昭阳k29轴拆机步骤图_【tableau入门教程23】雷达图
  7. 中国武术和泰拳的对抗史
  8. Communicator 2007的一些设置
  9. java实现KMZ文件转KML文件
  10. 传感器相关 MPU9250
  11. 弦截法求根c语言,弦截法求方程的根(c++)
  12. 复杂网络是怎么应用于神经网络上
  13. Vue2父传子、子传父和兄弟间互传
  14. Neo4j的Rest接口使用
  15. 报告解读下载 | 12月《中国数据库行业分析报告》发布,精彩抢先看
  16. 二叉排序树、平衡二叉树、红黑树、B树、B+树
  17. springCloud Alibaba seata 分布式事务
  18. Xinetd--01--理论
  19. 20110830 寝室物语
  20. 通信达交易接口是什么?

热门文章

  1. mysql默认排序规则_mysql 字符集与排序规则的简单了解
  2. 怎么看承重_怎么选购到一个好的工具柜,这些方面要考虑
  3. 服务器mvc提示404错误信息,解决Spring MVC提示404错误找不到JSP问题
  4. Python 基础教程:两个list合并成一个字典的两种方法
  5. 【python教程】对多线程中join()的详细教程
  6. Python 的类其实是一个特殊的对象
  7. Python logging模块日志存储位置踩坑
  8. Django基于正则表达式的URL
  9. linux 用户权限详解,03_04_Linux用户及权限详解
  10. 无线呼叫服务器对码设置,楼层呼叫器对码方式种类