重新认识的价值

重新认识常用的 git 命令,就像是走进一个熟悉的房间,但是里面的家具被全部重新布置了一次一样。这种焕然一新的感觉和体验,能够帮助理解后续的《git 内部原理》相关章节产生帮助。无论你是经验老道的资深开发者,还是希望了解 git 的普通爱好者,我都建议你细读本章的内容。

Git 命令

查看已暂存和未暂存的变更

git status 命令允许我们查看当前工作目录的状态,但并不提供查看具体某行改动的功能。 如果你想要知道当前工作目录相对于本地分支版本,具体哪些信息发生了变化,你可以使用 git diff 命令。

不添加任何参数的 git diff 命令可以列举出尚未添加到暂存区的具体变更。

屏幕快照 2018-07-08 下午10.06.39.png-53kB 相对于暂存区的文件 1.txt,本地工作目录的 1.txt 增加了 hello world 的改动。 如果你想要查看哪些已暂存的内容会进入下一次提交怎么办?答案是使用 git diff --staged命令。

编辑 1.txt 命令,新增 world hello 文本信息到文件中。 image_1cht3phg2t3j1heq1h3qrohdel.png-9.5kB

使用 git diff --staged命令,查看本次的修改是否会影响到暂存区? image_1cht3q66k2343me1cmj135r4fq12.png-13.4kB

进入下一次提交的信息,依然只有增加文件之前的变更内容。 image_1cht3qhrrn0p1agpj4216l7u9s1f.png-30.8kB

移除文件与移动文件

要从 git 中移除某个文件,你需要先从跟踪文件列表中移除,然后再进行提交操作。 git rm 命令除了帮你完成这些操作以外,还会帮你把文件中工作目录中移除。

git mv命令帮助你对文件进行移动操作。 image_1cht485cdqnemmdtff7td2m81s.png-199.5kB

真棒。但是 git 是如何跟踪到文件的移动或文件名的更改的呢?实际上,git mv命令等于连续执行以下三个命令。

mv 1.txt 2.txt
git rm 1.txt
git add 2.txt

查看提交历史

当出现线上问题时,能否第一时间运用 git log 定位到产生问题的人,并迅速把 这个人给解决掉,不仅是资深开发者的必备技能之一,更是求生意志的重要体现。

git log -p -2 参数 p 会显示出每次提交引入的差异。-2 参数表示只显示最近的两次提交记录。 image_1cht4qv861vi5166t1aan1vet1tvp2c.png-145.2kB 今夜我产生了两次提交。第一次增加了 hello world 字符到文本 1.txt 中,第二次修改了 1.txt 文件的文件筐。像这样的真凭实据,足以让那个产生问题的人闭嘴接锅了。

撤销操作

在 git 中,基本上总有后悔药可以吃。如果你对上一次的提交信息不满。git commit -amend命令可以帮你在不产生新的提交记录的基础上,修改上一次的提交信息。 image_1cht550ge1931j1hqn41h4i1hkh2p.png-278.4kB image_1cht563bv175a55h1esm19151mc036.png-220.9kB

注意,类似后悔药这样的药物总是伴随着强烈的副作用。如果你不想在药效过后成为一副被掏空灵魂的躯壳,谨慎使用这个命令。

从远程仓库获取和拉取数据

git fetch [remote-name]命令会从远程仓库中获取所有本次仓库没有的数据。该命令并不会将数据合并到本地的工作成功中。当你需要某个最新版本的数据时,你需要手动将这些命令合并到你的本地目录中。换句话说:git fetch从网络上获取最新的快照信息,但并不会检出最新的快照版本合并到本地。这听起来要比 git pull麻烦一些,但是更规范也更安全。

标记与标签

注释标签 git tag命令帮助你对某个提交版本打上标签。

➜  gitExperiment git:(master) git tag -a v1.4 -m "my version 1.4"

git show v1.4命令可以查看到标签数据以及对应的提交信息。

image_1cht5s27c1e1g1inl1b2v128l6n03j.png-120.8kB

轻量标签 git tag v1.4-lw 这样的标签不包含标签信息,只有提交信息以及标签的版本号。

检出标签

标签无法被检出。因为标签无法移动。你可以使用 ```git checkout -b [branchname] [tagname] 在特定的标签上创建一个新的分支。接着在新的分支上进行作业。

查看已经合并的分支

常见的 git 工作流中,常出现需要删除合并到 master 或 dev 的分支的环节。git branch --merged 能够让你查看哪些分支已经并入当前分支。

结语

生活中没有平凡的事物,每一份落日都是一份礼物。坦然接受平凡的馈赠,才能领悟深刻的人生哲学。重新认识生活,重新开始编程。认真专注于每一个细节和过程,向浮躁的社会和团队说不,你才能走的更远。

Copyright © chuck Lin 2017 all right reserved,powered by Gitbook该文件修订时间: 2018-07-15 10:39:59

results matching ""

    No results matching ""