关于Git使用的一些常见的问题

来源:互联网 发布:阿里云主页 编辑:程序博客网 时间:2024/06/05 11:07

一.git revert 与 git reset

     看了一些文章的解释,对于我这样的初学者大多不是很容易明白。
     下边介绍一下在我学会之后的理解,初学者的理解。
     首先是一个项目。共有三次commit。

     commit3  3
     commit2  2
     commit1  1
     注:commit3是最新的提交。右边是版本号。
     此时如果用git revert 2
     则,将commit2 的改变还原,然后重新提交一个commit4,commit4是commit2的相反版本。此时就变成了。
     commit 4
     commit 3
     
     commit 1
     
     如果使用git  reset 2 则变成:
     commit 2
     commit 1

     git reset就是跳到各个版本,仅仅保留之前的提交和本次提交,如上所示。 git revert 仅仅是把跳到的那次提交还原后,其它的均不变。

     官方语言就是:
     
     git revert 是生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留。
      git reset 是回到某次提交,提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区。
二.linux环境下的gitlab ssh key 配置

    首先执行命令:ssh-keygen -t rsa -C "自己的邮箱"
    然后连续回车
    出现以下代码:
    Your identification has been saved in /home/aaa/.ssh/id_rsa.
    Your public key has been saved in /home/aaa/.ssh/id_rsa.pub.
    下一步:
    $cat /home/aaa/.ssh/id_rsa.pub
    生成公钥:
    ssh-rsa 。。。。。。。
    下一步就是打开gitlab 
     /profile/keys  Add an SSH key

     将上边生成的公钥复制进去然后点击add key即可。

三.git分支问题

      创建dev分支,然后切换到dev分支:git checkout -b dev.
      分开写:创建 git branch dev 和 切换 git checkout dev.
      假设当前有两个分支,主分支master和dev.
      使用git branch查看所有分支,并且可以知道当前位于哪一个分支.(当前分支前有星号标记)
      git branch -d dev 删除分支dev.
      git branch -D dev 强制删除分支dev.(做了修改但是没有合并的分支)
      如何合并分支:git merge dev.即可把指定分支合并到当前所在分支.

      区分一个自己有疑问的问题:
      1.如果当前只有分支master,创建并切换到分支aaa,然后对代码作了修改但是并没有使用git add 和 git commit,此时切换到master,则会把
       aaa的修改同步到master.
      2.如果进一步使用了git add,则同样会把修改同步到master.
      3.如果进一步使用了git commit,则不会同步.

四.修改最后一次commit注释内容 git commit --amend
      git commit --amend 用来修改最后一次commit注释且该commit没有提交至服务器.
      使用方式:
       git add 当前修改内容(可有可无)
       git commit --amend 
       编辑最后一次的commit注释内容   
      操作完成后:如果当前有修改内容,相当于将本次修改与之前最后一次修改合并作为一次commit提交.
                          如果当前没有修改内容,直接git commit --amend ,相当于修改最后一次commit注释内容.
      
      


原创粉丝点击