美文网首页Java深入进阶
Git初识,解决你工作中大部分问题

Git初识,解决你工作中大部分问题

作者: 墙上藤蔓 | 来源:发表于2018-08-20 00:24 被阅读11次

    首先git是什么就详细介绍了,用过git都知道它比svn的方便


    安装Git

    Windows平台安装Git,下载地址:https://git-scm.com
    安装成功后,桌面右键,出现如下图标表示安装成功

    here,here

    初次使用的用户

    • 用户信息

      • 第一个要配置的是你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录:
      $ git config --global user.name "username"
      $ git config --global user.email "email@example.com"
      
    • 为了方便以后使用可以设置SSH公钥

      $cd ~/.ssh  //切换到相应目录,安装位置
      $ls 
      id_rsa  id_rsa.pub  known_hosts  //如果是初次,ls里面是没有这几个文件的. 
      //.pub 文件是你的公钥,另一个则是私钥。 如果找不到这样的文件(或者根本没有 .ssh 目录),你可以通过运行 ssh-keygen 程序来创建它们
      
      $ssh-keygen //连续回车3次
      $ cat ~/.ssh/id_rsa.pub  //用于查看公钥
      
      image.png
    image.png

    将上面的公钥复制粘贴

    image.png
    • 开始干正事

      • git上创建一个线上创库


        image.png
    • 关键来了

    //cd到创建的文件夹下
    

    错误提示技解决

    image.png

    出现这种错误是因为没有在github账号添加SSH key
    解决方法

    $ ssh-keygen -t rsa -C "username"  //连续回车
    //如果执行成功
    $ cat ~/.ssh/id_rsa.pub  //用于查看生成的公钥
    //将公钥保存到 GitHub 中即可
    

    下面重点、重点、重点开始进入使用阶段


    项目团队不大,几人开发,应该使用的都是同一分支,开发者在开发不同模块,没有修改共同文件时,这个时候即使不做commit,拉去代码也是成功的,建议先提交再拉去

    拉去出现冲突,此时需要我们先手动解决冲突,再提交推送,新推荐一个软件Visual Studio Code前端开发利器,很好的支持Git相关操作,小乌龟也不错,都挺轻量级工具
    命令行

    $ git diff
    diff --cc gitTest/a.md
    index 69367ae,62e065d..0000000
    --- a/gitTest/a.md
    +++ b/gitTest/a.md
    @@@ -1,1 -1,2 +1,6 @@@
    ++<<<<<<< HEAD
     +A first edit + 1+1
    ++=======
    + A first edit
    + K first edit
    ++>>>>>>> 18be8efb5fc2ab2ec6c65bdd9fb01edf3d48cd72
    

    冲突文件a.md,vi 命令修改也行

    <<<<<<< HEAD
    A first edit + 1+1
    =======
    A first edit
    K first edit
    >>>>>>> 18be8efb5fc2ab2ec6c65bdd9fb01edf3d48cd72
    //修改后内容如下
    $ cat a.md
    
    A first edit + 1+1
    K first edit
    //此时冲突已解决,提交自己的代码,add、commit、push
    
    • 多人开发使用分支,常见问题(分支合并
    //创建并且换到dev分支
    $ git checkout -b dev  
    //查看当前分支
    $ git branch
    * dev    //* 表示当前分支
      master
    

    在dev分支修改a.md文件

    $ cat a.md
    
    A first edit + 1+1
    K first edit
    A dev first edit   //这里是添加的一行
    //提交并推
    

    这里提交到了我们自己分支,真正发版的文件还是master分支中的文件,所以我们把dev分支的工作成果合并到master分支上

    //先切换到master分支
    $ git chechout master
    //查看当前分支
    $ git branch
      dev
    * master
    //可以查看devmaster分支状态,发现是没有修改的,因为我们修改的是dev
    $ git status
    On branch master
    Your branch is up-to-date with 'origin/master'.
    nothing to commit, working tree clean
    //合并分支
    $ git merge dev
    Updating 52d9df0..fd715db
    Fast-forward
     gitTest/a.md | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    //查看合并后的a.md
    $ cat a.md
    A first edit + 1+1
    K first edit
    A dev first edit  //此时master文件已经被修改
    //后面我们可以删除dev分支或者继续切换到dev分支上继续玩耍
    $ git branch -d dev  //删除分支命令
    Deleted branch dev (was b17d20e).
    
    • 另一种场景,K同事在A同事合并之前提交代码到master分支
    //先切换到master分支,拉去代码,并解决冲突
    //再接着必须add 、commit冲突文件,否则无法merge
    $ git merge dev
    fatal: You have not concluded your merge (MERGE_HEAD exists).
    Please, commit your changes before you merge.
    //开始合并
    $ git merge dev
    Auto-merging gitTest/a.md
    CONFLICT (content): Merge conflict in gitTest/a.md   //合并出现冲突,那就解决
    Automatic merge failed; fix conflicts and then commit the result.
    //之后重复上面提交,最后push ,master分支已经是最新的了
    

    既然master最新的了,dev分支也是要更新的,切换到dev分支重复上面工作

    期间可能会遇到其他问题,请在评论区留言,相互讨论,一些使用小技巧需要多注意下,可以提高开发效率

    希望对你有所帮助

    相关文章

      网友评论

        本文标题:Git初识,解决你工作中大部分问题

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