从 git bash 命令行中窥探人生(四)

简介: 众所周知,现实世界和计算机世界是不同的,但是计算机作为人类对现实世界的抽象模拟,在一定程度上,具备了现实世界的基本特征,本文将以哲学角度对比分析现实世界和计算机世界,试图以浅显易懂的方式感受现实世界和计算机世界的联系。
# 重置版本: 穿越到第一次的版本号,`08cbe61c2a635ec6f70ae7a50842ae308cd95fee` 即 `git log` 告诉我们的版本号.
$ git reset --hard 08cbe61c2a635ec6f70ae7a50842ae308cd95fee
HEAD is now at 08cbe61 add git learn note

发生什么了,我是谁,我在哪?现在是2019年还是公元220年?

小助手你在哪,快帮我看看现在是什么状态。

# 查看文件状态: 报告老板,工作区很干净,没有发生文件更改哟!
$ git status
On branch master
nothing to commit, working tree clean

小助手也没有给我满意的回复,自己动手丰衣足食,我还是自己看看周围有什么人吧!

Administrator@snowdreams1006 MINGW64 /f/workspace/git-bash-demo/git (master)
# 查看当前目录下文件: 原来我还在 `git` 目录下,这里还有我的学习笔记 `git.md` 呢!
$ ls
git.md
Administrator@snowdreams1006 MINGW64 /f/workspace/git-bash-demo/git (master)
# 查看文件内容: 我的笔记内容不是最新的了,原来的"git is so easy"不见了,我竟然真的回到了过去!
$ cat git.md
git 的基本流程
1. `git init` 初始化项目,创建本地网盘.
2. `git add` 添加文件,挑选出待上传到网盘的文件,准备上传.
3. `git commit` 提交文件,将已目标文件上传到网盘进行备份.
4. `git status` 查看文件状态,本地网盘创建完毕后随时随地呼唤小秘书查看文件状态.
5. `git log` 查看提交历史,同一个文件运行多次上传,每一次的文件都能识别,总览上传记录.
6. `git reflog` 查看回流历史,存储重要操作命令结果,高级进阶必备知识点.

抱着四处逛逛的心态,看一下当初的风景,逛累了回去吧!

怎么来的就怎么回去,原路返回一直是最保险的,自信心爆棚的说:要先查看一下版本号,然后运行git reset --hard <commit> 穿越回未来!

# 查看提交历史: 心态崩了,放声大哭:现在的我看不到未来的版本号,那我如何穿越啊...
$ git log
commit 08cbe61c2a635ec6f70ae7a50842ae308cd95fee (HEAD -> master)
Author: snowdreams1006 <snowdreams1006@163.com>
Date: Tue Apr 30 11:16:19 2019 +0800
add git learn note

真的是叫天天不应叫地地不灵,本来是想回到过去旅游观光的,现在手头上没有了未来的坐标如何穿越回去啊?

哭了三天三夜,调整好心态,求人不如求己,努力回想下平生所学看看有什么别的方法能穿越回未来?

记得当初介绍 git log 命令时还介绍一个相似的命令,当时说高级进阶必备,现在不知道能不能用着。

叫什么名字,好像是”回流”,于是经过千百次的尝试终于记起来命令,原来是 git reflog ,出发吧,皮卡丘!

# 翻阅命令: 目前所处的版本号是 `08cbe61`,上一个版本号是 `0b0657b`,然后回到了 `08cbe61` .
$ git reflog
08cbe61 (HEAD -> master) HEAD@{0}: reset: moving to 08cbe61c2a635ec6f70ae7a50842ae308cd95fee
0b0657b HEAD@{1}: commit: git is so easy
08cbe61 (HEAD -> master) HEAD@{2}: commit (initial): add git learn note

看来学习不能只追求够用啊,需要救命时还是要靠附加技能啊。

# 重置版本: 穿越回未来,看到 "git is so easy" 放心多了,我应该回来了吧?
$ git reset --hard 0b0657b
HEAD is now at 0b0657b git is so easy
# 查看文件内容: 我张汉三又回来了!
$ cat git.md
git 的基本流程
1. `git init` 初始化项目,创建本地网盘.
2. `git add` 添加文件,挑选出待上传到网盘的文件,准备上传.
3. `git commit` 提交文件,将已目标文件上传到网盘进行备份.
4. `git status` 查看文件状态,本地网盘创建完毕后随时随地呼唤小秘书查看文件状态.
5. `git log` 查看提交历史,同一个文件运行多次上传,每一次的文件都能识别,总览上传记录.
6. `git reflog` 查看回流历史,存储重要操作命令结果,高级进阶必备知识点.
git is so easy

经过这次穿越之旅,再也不敢轻视任何一个知识点了,以后保不齐都是救命的附加技能啊,赶紧把这条感悟追加到 git.md 学习笔记中去!

# `git reflog` 可以大概理解为 `reference log` 记做日志的参考日志,这样下次就不要绞尽脑汁回忆 `reflog` "回流"了!
$ echo "git reflog help us to back to fulture" >> git.md

亲爱的小伙伴们,git 的学习之旅暂时告一段落,有没有掌握 git 命令行的基本操作呢?

登录到远程服务器: 远程登录

ssh DESTINATION : secure shell 的缩写,即安全的 shell 终端.

正常情况下 windows 系统自带 cmd 终端是不支持 ssh 方式登录 linux 服务器的,如果想要远程登录 linux 服务器一般需要安装第三方工具,但 git bash 命令行却支持ssh

# 登录 github: 正常输入用户名密码或者秘钥等可以登录到远程 `linux` 服务器.
$ ssh git@github.com
PTY allocation request failed on channel 0
Hi snowdreams1006! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

访问互联网资源: 网络请求

curl URL : CommandLine Uniform Resource Locator 的缩写,即命令行下载工具.

互联网的资源一般都有专属链接,通过浏览器我们可以访问网页,但是在命令行下没有浏览器又想访问互联网资源该怎么办?

curl 就是这么一种工具,在命令行下也可以访问互联网资源,由于默认是将互联网资源下载到本地,因此又被成为命令行下载工具

# 将百度首页下载到 `baidu.html` 文件,配合管道符 `>` 实现文件内容的重定向 
$ curl http://baidu.com > baidu.html

查看已运行命令: 历史

history : 翻译为”历史”,即查看历史命令

$ history

常用命令

git bash 命令行终端内置命令比 windows 默认的 cmd 命令行窗口强大多了,除了支持一般的命令外,还支持简单的 linux 命令。

如果仅仅操作文本,git bash足以满足日常文增删该查需求,如果追求类 linux 命令行体验,推荐下载babun。

Babun - a windows shell you will love !

  • 常用内置命令
# 打印当前登陆用户
$ whoami
# 打印当前目录路径,其中 `/` 表示根目录,`~` 表示家目录.
$ pwd
# 查看当前目录下所有文件(夹)
$ ls 
# 切换指定目录,其中 `cd` 不带任何参数直接切换到家目录,`../` 表示上一级目录
$ cd 切换目录
# 新建指定目录
$ mkdir DIRECTORY 
# 新建指定文件
$ touch FILE
# 编辑指定文件
$ vim FILE
# 查看指定文件
$ cat FILE
# 查看指定文件开头部分,默认前十行.
$ head FILE
# 查看指定文件结尾部分,默认后十行.
$ tail FILE
# 查看操作历史
$ history
# 复制文件
$ cp SOURCE DEST
# 移动文件
$ mv SOURCE DEST
# 删除文件
$ rm FILE
# 删除文件夹
$ rmdir DIRECTORY
# 特殊字符: `tab` 自动补全命令,`esc` 退出编辑模式,`>` 覆盖重定向,`>>` 追加重定向.
# 远程登录服务器
$ ssh DESTINATION
# 发起网络请求
$ curl URL

git 基本命令

# 初始化本地项目
$ git init 
# 添加文件到缓存区
$ git add FILE
# 提交文件到版本库
$ git commit 
# 查看文件状态
$ git status
# 查看提交日志
$ git log
# 查看操作历史
$ git reflog

小结

我们以现实世界和计算机世界对比分析,在命令行终端工具下通过命令试图介绍计算机哲学,顺便学习了常用的命令。

比如简单的文件增删改查,相信你现在无鼠标操作也能创建文件,删除文件以及复制修改文件了吧?

基本的命令除了解决日常所需外,还在于和其他工具的配合,比如我们使用的命令行终端是 git bash ,这是安装 git 服务时安装的辅助性工具,帮助我们在命令行下进行版本控制。

只有熟悉基本的命令后才能更好的理解 git 的工作流程,图形化工具或插件也有很多,每一种都有自己的操作风格,相信熟悉了命令后再去学习图形化工具操作也不会太费事。

希望本文对你理解计算机或者说学习 git 能够带来些许帮助,如有不当描述,欢迎指出补充。

相关文章
|
3月前
|
前端开发 算法 开发工具
Git分支批量清理利器:自定义命令行插件实战
Git分支批量清理利器:自定义命令行插件实战
50 0
|
7月前
|
移动开发 小程序 Linux
【Linux】Linux和Window下\r与\n的区别、git命令行的使用
目录 1. 回车换行符在Window下和在Linux下的区别: 1.1回车换行符: 1. 2.行缓冲区打印: 1.3进度条小程序 :
111 0
|
7月前
|
存储 安全 网络安全
关于使用 git 命令行时遇到的错误消息 unable to get local issuer certificate
关于使用 git 命令行时遇到的错误消息 unable to get local issuer certificate
149 0
|
10天前
|
Shell Linux
【Linux】Bash支持各种指令选项的原理:命令行参数
【Linux】Bash支持各种指令选项的原理:命令行参数
|
1月前
|
Shell 开发工具 git
【Github】git bash将本地工程上传至github
【Github】git bash将本地工程上传至github
|
2月前
|
开发工具 git
git简易的命令行入门教程
git简易的命令行入门教程
11 0
|
2月前
|
开发工具 git
git简易的命令行入门教程
git简易的命令行入门教程
31 0
|
5月前
|
Shell
Shell(如Bash)命令行技巧
Shell(如Bash)命令行技巧
28 2
|
5月前
|
Linux 开发工具 数据安全/隐私保护
3.5、Linux:命令行git的使用
3.5、Linux:命令行git的使用
39 0
|
6月前
|
编解码 Shell
将条件判断写在bash命令行
将条件判断写在bash命令行

热门文章

最新文章