git操作

作者: Elliott_077d | 来源:发表于2018-08-11 23:00 被阅读0次

    版本控制工具我用的并不多,之前比较流行的svn是,现在的git也是。由于最近的工作由我来发布gitlab上的版本,对于git的使用变得多了起来,很有必要写点东西记录下来。
    首先,有这样一个问题,什么情况下我们需要版本控制?
    无非就是:

    1. 项目复杂度太高,需要检测变更,便于自己的还原操作。
    2. 多人协作的情况。
      ps:一般情况下第二个原因要多一些

    一、开始

    而git和svn的区别在于,git在本地也能有所谓的仓库。
    那么,现在就开始说说步骤,首先下载安装git,然后打开命令行工具输入

    $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com"
    

    PS:里面的name和邮箱,请填写自己的邮箱
    如果想看自己git的设置,可以使用

    $ git config --list
    

    接下来,cd到需要版本控制的目录,运行

    $ git init
    

    这时候会在目录下面生成隐藏文件.git


    image.png

    二、版本控制

    接着,往上面添加两个文件


    image.png

    然后运行

    $ git add a.html
    

    这样a.html文件添加到监测里面,如果输入

    $ git add .
    

    会添加所有文件到监测
    与之相反的是,如果要删除添加到缓存的文件,需要使用

    $ git rm --cached [filename]
    

    这时我在两个文件的主体部分都写上xxx,然后提交


    image.png

    由于只是添加了a.html文件,b.txt文件的变动并不会被检测到。
    一般情况下,会使用全部添加来进行,但是有些文件不想监测它的变化,比如通用的index.js经常要调试,每次处理冲突会很麻烦,这个时候就可以新建一个文件名为.gitignore,在里面配置相应的规则就可以忽略不该要的部分了。

    image.png

    我这里的文件就将bin目录下的文件全部忽视了
    OK,我这里添加完两个文件后,再提交一次,然后就可以使用

    $ git log
    

    来看看做了哪些提交了

    image.png

    回退在版本控制里面很重要,这样可以定位到自己之前做的一些错误的修改,在git里

    $ git reset --hard HEAD^
    

    可以返回上一个版本,而

    $ git reset --hard [version]
    

    传入你要的版本号,就可以回退到想要的版本了,而对这次回退返回的话,就可以使用

    $ git reflog
    

    查看你做的版本改动。

    注意:
    1.只有add过的change才能commit
    2.在add前取消修改可以使用git checkout -- [file]

    三、远程仓库

    这个关系到多人协作,非常重要。这里我选用的测试平台为码云,原因嘛,速度快且能私有。
    注册好账号之后,建一个项目。

    image.png
    通讯协议有http和ssh,为了避免每次都要输密码,这里使用ssh协议,首先就是添加公钥,具体看看官方文档http://git.mydoc.io/?t=154712

    特别注意的是在使用图形化工具tortoiseGit的时候要生成符合该工具格式的私钥,然后才能正常的进行版本控制

    第一次我们操作的时候,一般会使用,也就是下图的地址。

    $ git clone [url]
    
    image.png

    另外一个方法就是将本地仓库(用git init过的)和云端关联起来

    $ git remote add origin [url]
    

    同时我们也可以使用

    $ git remote -v
    

    来查看远程仓库


    image.png

    使用

    $ git push 
    

    来将本地的仓库推送至远程,当然这里是默认的推送,可以使用

    git branch --set-upstream-to <branch-name> origin/<branch-name>
    

    让本地的分支和远程的分支就建立起了联系

    四、分支

    版本控制另外一个很重要的点就是分支了,分支使多人协作成为了可能


    image.png

    这里,使用

    $ git branch A
    

    创建了A分支,我们可以使用

    $ git checkout A
    

    切换到A分支,修改commit


    image.png

    再切换到主分支


    image.png
    修改的地方消失了,这个时候我们也修改这个文件,并且提交这个文件,然后合并A分支,
    $ git merge A
    

    出现冲突


    image.png

    这里我选择保留两个修改,然后再提交
    要删除分支,使用

    $ git branch -d [name]
    

    下面和之前的结合起来,比如把本地的a分支上传到远程的仓库的A分支,先切换到本地A分支,然后

    $ git push origin A
    

    这样就会在远程建立一个分支A,并且是本地A分支的内容。
    如果要删除远程分支A,则可以使用

    $ git push origin :A
    

    仅仅多了一个冒号,语义就是大不相同。

    相关文章

      网友评论

        本文标题:git操作

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