git(gerrit) 常用命令

上一篇 / 下一篇  2021-08-24 09:20:28 / 个人分类:SoftTest

51Testing软件测试网M z0g$[+l3lsRI'U

nvI1kq%Xi.r/Z0
51Testing软件测试网L9a2n*y v,O@S
A. 通过windows shell设置用户名和邮箱:
git config --global user.name "XXX"
git config --global user.email "XXX@xxx.com"
B.生成win公钥,继续通过windows shell窗口输入:
ssh-keygen -t rsa -C "XXX@xxx"
  • 在上条工作目录下打开.ssh文件夹后查看并复制公钥;
  • 打开远程仓库,将复制的公钥填入 settings --> SSH Keys
C. 首次clone: 从远程服务器上查看到 Clone -- Clone with ssh 从而找到clone的命令。
本地执行:git clone git@git.xx.x.com/x/x/x.git
git checkout yourbranch
51Testing软件测试网q5m+n-U!OI'xL
51Testing软件测试网3N_SOZ3m
  1. 1. Make the changes to the files on your machine51Testing软件测试网A|1v/^4i v

    git add <file name>
    git add .      # 全部提交到缓存区

'Kh~L{#BR0e%},G0
  1. 2. If you are making a new commit use

    Qfb1_(i'L;n&d2B0
  2.     git commit51Testing软件测试网Oe'W)tI


  3. !l9nw%v%U6w-D|0
    51Testing软件测试网2X9]5Jx1E}

  4. Or to amend an existing commit use

    wzb,@#A0
  5.     git commit --amend

    ,HQ m+M [0E0
  6. 51Testing软件测试网:h.N\V:h.y,v2xv
    51Testing软件测试网{+\5?y'c7t

  7. Please make sure you add a commit message as it becomes the description for your change.

    _ r4~T5lr0

4av Y/L:t(IcQ b0
在commit的时候,发现提交者的名称和email都是错误的,这时需要先配置成当前的用户,以及对应的email
1
2
$ git config user.name test
$ git config user.email test@xxx.com
  1. 51Testing软件测试网Gw-M{XO

    9eo ~:xR-k0
  2. 3. Push the change for code review51Testing软件测试网up,Id6R}

  3.     git push origin HEAD:refs/for/master51Testing软件测试网9{h[XY`


  4. X }a |6Ive0
    51Testing软件测试网 [ z6uQHl

  5. Close this dialog and you should be able to see your recently created change in the 'Outgoing changes' section on the 'Your changes' page.51Testing软件测试网|-R,T5m @|-Yk @7k x

51Testing软件测试网+`*L0@\b5E+y:F)c*@
本地显示配置信息:
    git config --list

va A6p b$D8n0
4. Branch:
    git checkout -b <your-branch-name >       #创建一个新的分支同时切换到新创建的分支

zb(HL:GSq0
51Testing软件测试网N'W@8h^T y8q
Q1: push远程时被拒绝! [remote rejected] HEAD -> refs/for/master (no new changes)
分析:
no new changes 表示本地分支和远程分支代码没有差别,也就是没有新的提交。
Gerrit审核根据commit id 和 changeId来判断是不是新的提交,dev分支merge到master分支后,在master上可能没有生成新的commit id和changeId。也就是两个分支的commit id和changeId都相同,在master分支推送到Gerrit的时候,Gerrit判断内容相同,因此拒绝push。
51Testing软件测试网4qd8nx)T'I]
方法一:通过git commit --amend生成新的changeId,然后再push;

方法二:在merge的时候加上--no-ff参数。

!yu5j-A fR'ld0

--no-ff:不使用fast-forward方式合并,合并的时候会创建一个新的commit用于合并。51Testing软件测试网0ca g$dQZ

一、创建版本库

初始化一个Git仓库,使用git init命令。或者直接从远程库 git clone.51Testing软件测试网Z8}2S6VT)m4t

添加文件到Git仓库,分两步:51Testing软件测试网-Vk5x'@*xT)p

  1. 使用命令git add <file>,注意,可反复多次使用,添加多个文件;
  2. 使用命令git commit -m <message>,完成。
51Testing软件测试网 W e(NDa"L
二、版本回退
  • HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

    ?(p ^@fIVaE,vnG0
  • 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

    2[B vb/r6s'_;y \0
  • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。51Testing软件测试网M+pK2^ bP3Y


B*dQ)v:?SD%C0
三、版本修改

    每次修改,如果不用git add到暂存区,那就不会加入到commit中。


3P.~7D[!M7ZbU0
四、撤销修改

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file51Testing软件测试网%p8fA!v^wMH

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。

6GJ4|C Az+{e6n!x0

五、删除文件51Testing软件测试网hn5V a h$Q&[&I}]7O

命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容51Testing软件测试网H3lb7SY{ @o

把误删的文件恢复到最新版本:$git checkout -- test.txt

6M-V gm.`"R9g)H5I0

六、添加远程库

#N3G8a7BNy'FR E$i0

要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git

?/ck'x{r8OcA6o)p0

关联一个远程库时必须给远程库指定一个名字,origin是默认习惯命名;51Testing软件测试网'z9G[)q;w`!J t

关联后,使用命令git push -u origin master第一次推送master分支的所有内容;51Testing软件测试网BXz[ KQ

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改51Testing软件测试网${7fm v^


TAG:

 

评分:0

我来说两句

日历

« 2024-03-18  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 231420
  • 日志数: 135
  • 图片数: 4
  • 文件数: 1
  • 书签数: 1
  • 建立时间: 2006-12-11
  • 更新时间: 2022-10-31

RSS订阅

Open Toolbar