在使用指令列版控的过程中,经常有机会用到 Git Shell 这套优异的 Git 版控环境,一来他使用 Windows PowerShell 为核心,其讯息显示与输入都支援 Unicode,比较不会有中文字集转换的问题;二来输入命令或分支名称的时候还有 IntelliSense 功能协助,非常贴心的设计;三来在版控的过程中,可以看出当下工作目录位于哪个分支上,这个提示也很棒;四来常会看到他透过颜色与一些特殊符号提示你目前工作目录的状态,但不特别看文件还真的不太容易知道它颜色代表的意义,因此特别撰文解说。
不同的分支颜色所代表的意义
- 青色 (Cyan),代表本地储存库与远端储存库是同步状态!
- 红色 (Red),代表目前本地储存库的版本比远端储存库还落后 (behind),意思是远端储存库拥有目前本地储存库没有的版本,需要透过 git pull 把远端储存库的变更抓回来更新本地储存库!
如下图示,代表目前远端储存库上有 1 个版本 (commit) 需要同步回来:
- 黄色 (Yellow),代表目前本地储存库有些版本比远端储存库还落后 (behind),同时间也有些版本比远端储存库还超前 (ahead),意思是说,目前远端储存库拥有目前本地储存库没有的版本,而且本地储存库也拥有远端储存库没有的版本,代表你需要先做 git
pull 把远端储存库的变更抓回来更新本地储存库,也需要透过 git push 把本地储存库的版本变更推送上去。注意:由于远端与本地都有版本变更,这代表透过 git
pull 抓取变更回来时,势必要面对「合并」的议题,也就是可能会遇见「合并冲突」的状况。
- 绿色 (Green),代表目前本地储存库有些版本比远端储存库还超前 (aheads),意思是说本地储存库拥有远端储存库没有的版本,你需要透过 git push 把本地变更推送到远端储存库。
如下图示,当我们先用 git pull 把远端储存库的变更抓回来合并或更新之后,颜色马上变成「绿色」了,也就是这个时候执行 git push 是最安全的(不会有冲突事件发生),你可以这样思考:【当看到绿灯的时候,就是可以推送版本上去的时刻!】
如下图,你可以发现,只要我把本地储存库的变更推送上去后,颜色就立刻变回青色 (Cyan)了!
工作目录档案状态符号与颜色所代表的意义
在 Git Shell 执行环境中,经常出现的一些有颜色的数字提示,其数字前的符号所代表的意义如下:
+
= 有 n 个新增档案~
= 有 n 个档案被更新-
= 有 n 个档案被删除!
= 有 n 个档案在合并的时候发生冲突
其颜色所代表的意义如下:
- 暗红色 (Dark Red),代表这些档案处于 Untracked 或 Not Staged 状态 (不会被 commit 的档案)
- 暗绿色 (Dark Green),代表这些档案处于 Staged 状态 (会被 commit 的档案数
以下图示各位可以看图说故事一番:
转载地址:http://blog.miniasp.com/post/2014/01/05/The-color-meaning-in-Git-Shell-prompt.aspx