git(gerrit) 常用命令

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

51Testing软件测试网9JE_X HZ%sZq

cj$B2a2QA2J0
51Testing软件测试网R+_i.U2k}0gq
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

d,R`%Q9kY(B0

ZY_vJ(yl!h0
  1. 1. Make the changes to the files on your machine

    (Xp&PI"s+jV-e_0
    git add <file name>
    git add .      # 全部提交到缓存区
51Testing软件测试网+d*Oz5H}
  1. 2. If you are making a new commit use51Testing软件测试网-pd y0~1C+Y#M

  2.     git commit51Testing软件测试网/T/x5S$d,D4` F

  3. 51Testing软件测试网[O%S+o%S/E/Co
    51Testing软件测试网l+? PnR)f

  4. Or to amend an existing commit use51Testing软件测试网6D k;J3j8M@\6P

  5.     git commit --amend

    o$Y\,Cce0
  6. 51Testing软件测试网O S1V1tE|d@,vm

    6l(O7z3E|G n)E0
  7. Please make sure you add a commit message as it becomes the description for your change.51Testing软件测试网!\Q"`6{y n;ut

51Testing软件测试网HT9@4XW Q C
在commit的时候,发现提交者的名称和email都是错误的,这时需要先配置成当前的用户,以及对应的email
1
2
$ git config user.name test
$ git config user.email test@xxx.com

  1. j1KU:x9y"y8K051Testing软件测试网_4c3@y`|

  2. 3. Push the change for code review

    (y'`7p]8V0
  3.     git push origin HEAD:refs/for/master51Testing软件测试网j h|:E!L r[5QV


  4. #~4^c.Qcg#fJ8|(J0
    51Testing软件测试网'yw8SA do(G'o#i;X+S

  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软件测试网:P_H.mi


M4GCg3B3J^6_0
本地显示配置信息:
    git config --list

f2e B e3{#`l&R0
4. Branch:
    git checkout -b <your-branch-name >       #创建一个新的分支同时切换到新创建的分支
51Testing软件测试网bj _^K0i}R@R ]}~
51Testing软件测试网{9S Eq,\l4i9N5dc:s
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。

l2pW1ur(N0
方法一:通过git commit --amend生成新的changeId,然后再push;

方法二:在merge的时候加上--no-ff参数。51Testing软件测试网2J7_;P'XiC~

--no-ff:不使用fast-forward方式合并,合并的时候会创建一个新的commit用于合并。51Testing软件测试网5rNE1Ee%tZ/O ~,Kk

一、创建版本库

初始化一个Git仓库,使用git init命令。或者直接从远程库 git clone.51Testing软件测试网SJH xcCX u+RE&D%Y

添加文件到Git仓库,分两步:51Testing软件测试网O!P7ItV

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

    n0A2k^XN0
  • 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。51Testing软件测试网G8OVq*Q8bJ

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

    yK(u!P0~&A9G0
51Testing软件测试网)M#aM,Tw.hlP
三、版本修改

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

51Testing软件测试网#Dk;M5Hp}
四、撤销修改

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

6n&MzP&y D q!\:jX0

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

/jZ)W[7M3Y{0

五、删除文件

)M0Y'vm"|0

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

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

K4B3}#`p ow*bt4Z0

六、添加远程库

B \{+U$IKQw4~ C/H0

要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git51Testing软件测试网 {-VP*X6|j+C

关联一个远程库时必须给远程库指定一个名字,origin是默认习惯命名;51Testing软件测试网.J1l?AZ

关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

3?n9M5m4QC"k.~0

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改51Testing软件测试网 D7qzu)M*l9i/? u'@"z


TAG:

 

评分:0

我来说两句

Open Toolbar