学习Git时的发现与学完的收获

作者: tobe_superman | 来源:发表于2016-09-17 17:20 被阅读0次

    在学长的推荐下,最近我开始学习世界上最先进的分布式版本控制系统——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 addgit 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还有很多功能需要我去了解与掌握,我也一定会努力,利用好这款功能强大的系统。

    相关文章

      网友评论

        本文标题:学习Git时的发现与学完的收获

        本文链接:https://www.haomeiwen.com/subject/kdaiettx.html