1. Make the changes to the files on your machine51Testing软件测试网A |1v/^4i v
git add <file name>
git add . # 全部提交到缓存区
'Kh~L{#BR0e%},G0
2. If you are making a new commit use
Qfb1_(i'L;n&d2B0 git commit 51Testing软件测试网Oe'W)tI
!l9nw%v%U6w-D|0 51Testing软件测试网2X9]5Jx1E}
Or to amend an existing commit use
wzb,@#A0 git commit --amend
,HQ m+M [0E0 51Testing软件测试网:h.N\V:h.y,v2xv 51Testing软件测试网 {+\5?y'c7t
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
51Testing软件测试网Gw-M{XO
9eo
~:xR-k0 3. Push the change for code review51Testing软件测试网u p,Id6R}
git push origin HEAD:refs/for/master51Testing软件测试网9{h[XY`
X}a |6Ive0 51Testing软件测试网[
z6uQHl
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@7kx
51Testing软件测试网+`*L0@\b5E+y:F)c*@
本地显示配置信息:
git config --list
va
A6pb$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软件测试网0c a g$dQZ
一、创建版本库
初始化一个Git仓库,使用git init
命令。或者直接从远程库 git clone.51Testing软件测试网Z8}2S6VT)m4t
添加文件到Git仓库,分两步:51Testing软件测试网-Vk5x'@*xT)p
使用命令git add <file>
,注意,可反复多次使用,添加多个文件; 使用命令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 -- file
。51Testing软件测试网%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-Vgm.`"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`!Jt
关联后,使用命令git push -u origin master
第一次推送master分支的所有内容;51Testing软件测试网BXz[
KQ
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改51Testing软件测试网${7fm v^