Git 的使用技巧和窍门
介绍
别名 (co > checkout)
您可以为任何 Git 命令创建别名。例如,以下为 Git 命令status创建别名st:
$ git config --global alias.st status
只需将别名替换为您想要的名称,然后输入原始命令。使用 shell 别名g和 git 别名co,以下命令将实现与git checkout相同的效果:
$ g co
要创建 shell 别名,你可以使用alias g='git '为当前 shell 添加一个别名
要为您的用户创建“永久”/持久别名,您只需将上述命令添加到用户的 shell rc 文件中即可。对于大多数系统,这将是~/.bashrc或~/.zshrc 。
使用您喜欢的编辑器打开当前 shell 的文件,您可以通过运行echo $SHELL找到此 shell 。在文件底部附近添加以下代码片段,尾随空格是为了您可以将其他参数传递给别名,并将它们正确传递给您可以调用的程序,在本例中为git。
alias g='git '
这有点不同,但随着时间的推移,你的生产力将获得足够的回报。
自动完成
通过命令行使用 Git 时,启用自动完成功能总是有用的。如果您使用 ruWindows 的 git shell,则应该已经设置了自动完成功能。
如果您的终端未启用自动完成功能,您可以从Github下载 Git 的自动完成脚本。
下载后,将文件复制到主目录,并将以下行添加到您的.bashrc文件中:
source ~/git-completion.bash
现在,当你输入 git 命令并按tab时,它应该显示所有以co开头的 Git 命令:
$ git co<tab>
commit config
拥有这种自动完成功能可以加快实施速度。
签出并重置文件
您可能已使用 checkout 和 reset 来处理分支和提交。但是,您也可以对文件使用checkout和reset命令。
当我们在 git 中对文件使用git reset时,reset 命令将更新暂存区,导致特定文件恢复到其以前的状态。
因此,用户可以从暂存区中删除文件“jedi.js” ,并使用以下命令使其与HEAD中的版本相同:
$ git reset HEAD jedi.js
如上图所示,该文件不再处于暂存状态,且具有与最新提交相同的内容。
太酷了!现在让我们看看结帐。
git checkout是常用的旧命令,用于在分支之间切换。当该命令与文件路径一起使用时,指定的文件将重置为与分支相同的状态(在本例中为 HEAD )。
$ git checkout HEAD jedi.js
上述命令将文件“jedi.html”恢复为HEAD指向的文件的状态,并将其从暂存区中删除。
确实,把它保存在某个地方。这个文件肯定会派上用场。
因此,您只能将文件恢复到另一个分支(或相同分支)指向的版本。您可以对文件进行更改,然后使用git add . 将修改后的文件添加到暂存区。
Stash 节省时间
命令git stash选取暂存中的所有更改并将其保存在单独位置。因此,这个有用且名称恰当的命令会清除您的暂存区域。
这样,您可以保存一组已做但尚不想提交的更改。
$ git stash
或者,如果您还需要存储未跟踪的更改,请使用-u参数:
$ git stash -u
特别是,当我需要git pull并希望避免本地更改和上游更改之间的冲突时,我会使用更多的stash 。
要将本地更改恢复到暂存状态,您需要应用存储。以下命令重新创建存储的最新更改:
$ git stash apply
您可以拥有多个储藏室。默认情况下,您的储藏室将按 FILO(先进后出)顺序应用。
修改也节省时间
如果在提交一些更改后,您记得忘记对文件添加修改,则可以使用_ --amend _选项。
下面演示了另一个重要的专业工具amend的用例:
这里,参数 _-no-edit _ 修复文件而不改变提交消息。
提交之间的差异
要查看上次提交的更改,您可以使用:
$ git log --stat
$ git diff 0da94be 59ff30c
如果你使用 GitHub,你可能会更好地看到那里的差异。+ 看看如何
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~