Git和Gerrit、vim

Git相关命令

一、添加到仓库

    1.git add<file>:添加文件,含义就是告诉git,将文件添加到git仓库中去,例如:git add test.txt

    2.git commit -m<message>:提交文件,含义就是将文件提交到git仓库。-m后面指的是本次提交的说明。

        添加文件到Git仓库,分两步:

          a.使用命令git add <file>,注意,可反复多次使用,添加多个文件;

          b.使用命令git commit -m <message>,完成。

二、查看文件、版本回退

    3.git status:查看变动后的文件是哪些,含义:可以让我们掌握仓库的当前状态

    4.git diff<file>:查看某个文件具体的修改的某个内容

          c.要随时掌握工作区的状态,使用git status命令。

         d.如果git status告诉你有文件被修改过,用git diff可以查看修改内容。

    5.git log:查看提交的日志

    6.git log --pretty=oneline :简化提交日志,只会显示commitId加上说明

         (q是从git log退出)

       回退版本:

         a:在Git中,用HEAD表示当前版本,也就是最新的提交

         b:上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

         c:git reset --hard HEAD^:回到上一个版本

                (cat 查看文件内容,例如:cat 文件)

      例如:现在已经回退到上一个版本了,现在又想回到上一个版本:

                   只要命令行界面没有关掉,查找到最新的那个版本的commitId

                      git reset --hard commitId (说明:commitId可以不用写全,git会自动去找)

           * 你回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的commit id怎么办?

                git reflog :显示从最新的到后面的所有日志

         HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令

                git reset --hard commit_id。

          穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

         要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

三、暂存区和工作区

(注意:git add 是将文件添加到暂存区,git commit 将暂存区提交到当前分支)

我们现在在本地开发的叫做工作区。

使用git commit后就会将暂存区的提交到分支了,就变成这样了

四、管理修改

     mv 文件名 修改后的文件名

     vi 文件名:含义是修改文件内容。

     :wq 保存

     git diff --HEAD commitid 查看本地和分支上的不同

     git reset <文件>:回退这个文件的版本

五、撤销修改

  1. 已经修改完了的文件,但是没有add 和 commit
    git checkout -- <文件>:--很重要,没有这个的话就是切换到另一个分支了。

      总之是让这个文件回到最近一次的git commit 和 git add时的状态

      2.已经修改完了的文件,但是已经add或者commit了

         git reset HEAD<file>:用HEAD表示最新版本,(git reset <file>这个也可以)

         git checkout --<file>

             (ps:前提是没有push到远程)

六、删除文件

  1. 如果文件已经上传,add 和commit了。

两种办法:1.rm 文件-》git add 文件-》git commit 文件。覆盖掉

                  2.rm文件-》git rm 文件 -》git commit

2.删错了某个文件,但是仓库中还有,想恢复过来

   git checkout -- <file>就可以恢复过来了

七、远程仓库

     git push:提交远程仓库

    git clone 地址:克隆仓库

八、创建并合并分支

    git checkout -b 分支名:创建分支,-b表示创建并切换 等价于-》git branch 分支名,git checkout 分支

    git branch :会列出所有分支。当前分支用*表示

       例如:在新分支改了后。要将新分支改了的内容推到主干上去

          a.将新的分支上改变的commit完

           b.切换到主分支

         c.git merge 分支:git merge用于合并指定分支到当前分支

       git branch -d 分支:删除分支

       小结:

          查看分支:git branch

          创建分支:git branch <name>

          切换分支:git checkout <name>

          创建+切换分支:git checkout -b <name>

          合并某分支到当前分支:git merge <name>

          删除分支:git branch -d <name>

九、解决冲突

    a.git merge 分支名 b.手动编辑有冲突的文件。然后在提交  c.当merge或rebase的时候需要出现了问题,可以是git rebase --abort(或者git merge --abort)

十、多人合作

  git remote:查看远程信息。加上-v后显示更加详细的分支

  git push:推送到远程分支

  git pull:从远程上拉取最新的

 注意:如果git pull出错。出现If you wish to set tracking information for this branch you can do so with:

     说明,你的本地分支与远程分支没有链接上。

      使用;git branch --set-upstream-to <branch-name> origin/<branch-name>

  多人开发的时候,先更新本地(git pull)解决冲突后,推送到远程(git push)

十一、Rebase

   git rebase 分支名 

    rebase操作可以把本地未push的分叉提交历史整理成直线;

   rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。

  而且在自己分支上提交到主干上的时候,使用git rebase -i HEAD~1(或者git rebase -i commitId),这样的话就不会多次提交出现

git大全:

参考链接:

https://gist.github.com/guweigang/9848271

idea使用git

gerrit介绍

       我们使用git来提交代码的时候。通常是git add->git commit->git push,这样就将自己新的代码提交到了远程仓库中去了。就像红色箭头指的那样。
那么gerrit就是上图中的那只鸟,普通成员的代码是被先push到gerrit服务器上,然后由代码审核人员,就是左上角的integrator在web页面进行代码的审核(review),
可以单人审核,也可以邀请其他成员一同审核,当代码审核通过(approve)之后,这次代码才会被提交(submit)到代码仓库(repo)中去。

   注意:

    1.当进行commit时,必须要生成一个Change-Id,否则,push到gerrit服务器时,会收到一个错误提醒。

    2.当我们提交时没有出现changeId。可以从hooks取到。

     在我们gerrit.jd.com中的选项clone with commit-msg hook可以拿到,然后执行 scp -p -P 443 wanlong3@gerrit.jd.com:hooks/commit-msg nrt-platform/.git/hooks/

   参考链接

   Gerrit工作流程及使用手册

 gerrit"miss Change-Id"

   在现在开发的时候,提交代码到gerrit时。get commit -m"一定要加上Issue号",例如:get commit -m"Issue5323:解释"。但是get log查看的时候发现没有changeId。

解决办法:get commit --amend,啥也不用改,直接保存退出就可以了(:wq).再次查看的时候发现缺少的changeId,补上了。然后git-review -b app-dev。这样就提交成功了。

如果提交失败的话,直接点击failure->Console Output .例如这样的

vim基本常用命令

    Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富.首先可以从这张图中可以看出一些vim的相关命令。

  基本上vim/vi共分为3种模式,命令模式、输入模式和底线模式。

  命令模式:

     用户刚刚启动 vi/vim,便进入了命令模式。
     此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
     以下是常用的几个命令:

       i 切换到输入模式,以输入字符。
      x 删除当前光标所在处的字符。
      : 切换到底线命令模式,以在最底一行输入命令。
        若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
       命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

  输入模式

    在命令模式下按下 i 就进入了输入模式。
    在输入模式中,可以使用一下按键:
      ENTER,回车键,换行
      DEL,删除
      HOME/END,移动光标到行首/行尾
      Page Up/Page Down,上/下翻页
      Insert,切换光标为输入/替换模式
      ESC,退出输入模式

 底线命令模式 

   在命令模式下按下:(英文冒号)就进入底线命令模式
   在底线命令模式可以输出单个或多个字符的命令:
    基本命令有:
    q 退出程序
    w 保存文件
  按ESC键可以随时退出底线命令模式,按照这个图表来显示

  

欢迎关注微信公众号:Java的学习之路

里面资料非常全,从java初级到高级都有,视频,电子书,面试宝典,简历模板,经典案例,源码分析程序员故事以及解决bug方法。。。。应有尽有,可以推荐大家一起学习下!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值