提交代码
每次提交代码前,先执行 git pull --rebase ,确保已经合并天上代码,解决冲突
git add
git commit -m
git push origin HEAD:refs/for/{BRANCH_NAME}
可考虑设置 alias 方式,参考下文
CR-2 情况处理(verify-1情况一样处理)
d794693 2015-11-12 (HEAD -> master) commit 7 [lvgx]
f1bbc51 2015-11-12 commit 6 [lvgx]
d813cd8 2015-11-12 commit 5 [lvgx]
cc00834 2015-11-12 commit 4 [lvgx]
ad1fdac 2015-11-12 commit 3 [lvgx]
12baec9 2015-11-12 commit 2 [lvgx](CR-2) 代码有问题的commit点
9c95373 2015-11-12 commit 1 [lvgx]
如果需要修改commit 2 提交点内容,重新提交;
1、rebase
git rebase -i HEAD~6 or git rebase -i 9c95373(目标点前一个点)
pick 12baec9 commit 2
pick ad1fdac commit 3
pick cc00834 commit 4
pick d813cd8 commit 5
pick 2982c6d commit 6
pick 264870e commit 7
Rebase 9c95373...264870e onto 9c95373 (6 command(s))
Commands:
p, pick = use commit
r, reword = use commit, but edit the commit message
e, edit = use commit, but stop for amending
s, squash = use commit, but meld into previous commit
f, fixup = like "squash", but discard this commit's log message
x, exec = run command (the rest of the line) using shell
These lines can be re-ordered; they are executed from top to bottom.
If you remove a line here THAT COMMIT WILL BE LOST.
However, if you remove everything, the rebase will be aborted.
"~/Desktop/gerrit/test2/matchbox-app-android/.git/rebase-merge/git-rebase-todo" 24L, 747C
2、将commit2的pick修改为"edit"
pick 12baec9 commit 2 为 edit 12baec9 commit 2
保存退出
xz@xzdeMacBook-Pro:matchbox-app-android$ git rebase -i 9c95373
Stopped at 12baec9f5a1f3611ba071c59548f20ab3279dbb9... commit 2
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
3、修改代码,执行
git add .
git commit --amend
4、git rebase --continue
5、git review
Abandon 情况处理
commit一但出现abandon,这个changeid将不再允许commit
xz@xzdeMacBook-Pro:~/Desktop/gerrit/test3/matchbox-app-android$ git push riv
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 337 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2)
remote: Processing changes: refs: 1, done
To ssh://lvgx@192.168.14.217:29418/matchbox-app-android
! [remote rejected] HEAD -> refs/for/master (change http://192.168.14.217:8281/132 closed)
error: failed to push some refs to 'ssh://lvgx@192.168.14.217:29418/matchbox-app-android'
此时需要新建一个commit实现代码提交,执行reset操作
1、git reset
xz@xzdeMacBook-Pro:~/Desktop/gerrit/test3/matchbox-app-android$ git reset 1876441
Unstaged changes after reset:
M commit3
xz@xzdeMacBook-Pro:~/Desktop/gerrit/test3/matchbox-app-android$ git st
On branch master
Your branch is ahead of 'origin/master' by 13 commits.
(use "git push" to publish your local commits)
Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git checkout -- ..." to discard changes in working directory)
modified: commit3
no changes added to commit (use "git add" and/or "git commit -a")
2、git commit
xz@xzdeMacBook-Pro:~/Desktop/gerrit/test3/matchbox-app-android$ git commit -am "commit52+"
master 3cb427e\] commit52+ 1 file changed, 1 insertion(+) 3、pull 建议每次review之前 运行 git pull --rebase git pull --rebase 4、git review 冲突情况处理 冲突情况出现,说明其他人做了相同文件的修改,且优先入库了; 先 commit 本地内容只本地仓库 执行 git pull --rebase 操作,合并天上内容 修改 rebase 过程中遇到的冲突问题 执行 git review 操作 别名设置 配置多branch情况建议配置config文件 cd ~ vim .gitconfig 添加 \[alias
review = !sh -c 'git push origin HEAD:refs/for/$1' -
review 分支使用
git review branch-name
reset 介绍
type Index WorkDir WD safe
soft NO NO YES
mixed YES NO YES
hard YES YES NO
--mixed reset HEAD and index
--soft reset only HEAD
--hard reset HEAD, index and working tree