在学长的推荐下,最近我开始学习世界上最先进的分布式版本控制系统——Git(事实上学完之后我也觉得挺先进的嘿嘿)。
发现
在学习的过程中,教程(Git教程 - 廖雪峰的官方网站)里有用到一些并没有介绍过的Git命令,我通过自己琢磨以及上网找资料,弄懂了这些命令的作用,在这里分享给大家。
1.关于目录的命令
cd命令$ cd xxx
可以切换目录,这里xxx为要切换至的目录名或目录的地址:
Administrator@USER-20160301YL MINGW64 ~
$ cd learngit
Administrator@USER-20160301YL MINGW64 ~/learngit (master)
$
可以通过$ cd
命令直接返回至根目录。通过$ pwd
命令即可查看当前目录的地址,这里显示的是我的根目录的地址:
Administrator@USER-20160301YL MINGW64 ~/learngit (master)
$ cd
Administrator@USER-20160301YL MINGW64 ~
$ pwd
/c/Users/Administrator
也可以通过$ cd ..
命令返回上级目录:
Administrator@USER-20160301YL MINGW64 ~/learngit (master)
$ cd ..
Administrator@USER-20160301YL MINGW64 ~
$
注意:cd与..之间一定要有空格。
举个例子:我有个文件夹地址为"c/Users/Administrator/learngit/gitignore/",在当前目录为根目录的情况下,如果直接键入$ cd gitignore
是无法切换的:
Administrator@USER-20160301YL MINGW64 ~
$ cd gitignore
bash: cd: gitignore: No such file or directory
因为gitignore文件夹并不是在根目录下的,根目录下找不到这个文件夹,就会报错。因此要键入gitignore文件夹的地址:
Administrator@USER-20160301YL MINGW64 ~
$ cd learngit/gitignore
Administrator@USER-20160301YL MINGW64 ~/learngit/gitignore (master)
$
当然也可以在先找到并打开目标目录,单击右键并选择"Git Bash Here",则进入Git后,当前目录自动变成目标目录了。
2.关于文件的命令
cat命令$ cat xxx
可以直接查看文件的内容,这里xxx为要查看的文件名或文件的地址:
Administrator@USER-20160301YL MINGW64 ~/learngit (master)
$ cat readme.txt
Git is a distributed version control system.
Git is a free software under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
Creating a new branch is quick & simple.
manage branches
Administrator@USER-20160301YL MINGW64 ~
$ cat learngit/readme.txt
Git is a distributed version control system.
Git is a free software under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
Creating a new branch is quick & simple.
manage branches
vi命令$ vi xxx
可以对文件进行编辑,同样,xxx为要编辑的文件名或文件的地址。如果文件不存在会新建文件,并在终端最下面一行显示打开的是一个新文件:
Administrator@USER-20160301YL MINGW64 ~/learngit (master)
$ vi newfile.txt
如果文件存在则会打开现有文件:
Administrator@USER-20160301YL MINGW64 ~/learngit (master)
$ vi readme.txt
此时编辑器处于默认的命令模式,键入字母'i'或按"Insert"键进入最常用的插入编辑模式:
这时就可以修改文件的内容了。注意:只能通过键盘来移动光标。
也可以按"Insert"键进行插入编辑模式和替代编辑模式的切换:
在替代编辑模式下,默认替代光标后的字符,按"Backspace"键可以撤销上一次的修改。
修改完文件之后按"Esc"键退出当前的编辑模式进入命令模式,在命令模式下键入"ZZ"(注意是大写)或键入":wq"并按"Enter"键退出编辑器。没有对文件进行修改依然可以这样退出。
当然,修改完文件后要记得用
git add
和git commit
提交修改哦,不然做的修改都白费了。当用
git add
添加文件的时候,可能会出现下面的问题(我用的是Window系统,用LINUX的小伙伴们如果出错,情况并不是这样的):
Administrator@USER-20160301YL MINGW64 ~/learngit (master)
$ git add readme.txt
warning: LF will be replaced by CRLF in readme.txt.
The file will have its original line endings in your working directory.
仔细阅读代码,系统提示:LF 将被转换成 CRLF。这是因为Windows系统中换行符为CRLF,而LINUX系统中换行符为LF。这时键入$ git config --global core.autocrlf false
,就能正常添加文件了:
Administrator@USER-20160301YL MINGW64 ~/learngit (master)
$ git config --global core.autocrlf false
Administrator@USER-20160301YL MINGW64 ~/learngit (master)
$ git add readme.txt
Administrator@USER-20160301YL MINGW64 ~/learngit (master)
$
这是因为把全局参数--global core.autocrlf
修改成了false,就不会出现上述的问题。
PS:这种方法其实不太妥当,除非只在Windows系统下开发,否则最好将--global core.autocrlf
设置为true,Git可以在提交时自动地把行结束符CRLF转换成LF,而在签出(即git checkout
)时把LF转换成CRLF。这样就保证仓库中换行符永远都是LF,而在Windows工作空间中都是CRLF。
收获
学习完Git后,我真心感叹这款系统的强大,开源、免费就不说,我感觉其最大的特点就是操作简单、容易上手,只需轻敲键盘,仅仅输入几行字符就能实现编辑文件、提交或撤销修改、删除文件、版本回溯等核心操作,而且Git中的命令不多也并不难记,每条命令都有很明显的含义,方便用户进行记忆。
说了这么多,我都迫不及待和我的小伙伴们利用Git开发我们的合作项目啦。当然,Git还有很多功能需要我去了解与掌握,我也一定会努力,利用好这款功能强大的系统。