ski 提交代码
ski 提交代码参考
下面的示例是在 r64 分支上进行,如果是在别的分支上进行开发,注意切换到别的分支。
提交代码到远程新的分支:
代码修改完成,编译、测试,确认没问题后:
-
如果有新文件,把文件加入暂存区:
git add file1 file2 # 一定要指定自己新增的文件或目录,尽量不要全局提交
-
提交暂存区内容到当前分支:
git commit file1 file2 -m "comments" # 同样是指定要提交的文件,尽量不要全局提交
-
提交本地仓库到远程仓库的一个新分支:
git push origin r64:newBranchName # skipper 中分支名一般以 e 开头 # qt 可以在这个分支上进行测试,测试没问题之后 merge 到 r64 分支
追加提交:
当提交没通过测试,重新修改时,修改后:
git commit --amend file1 file2 # 追加提交,保证只产生一次提交记录
git push -f origin r64:newBranchName # 把追加的提交 push 到远程分支给qa测试
合入代码到主分支:
skipper 项目的代码合入主分支前要经过 gerrit 测试,一般是由你的领导 review, review 没问题之后,会帮你合入主分支
提交 gerrit 测试:
在 ski 目录下执行:
git review r64
如果代码 review 不通过,重新修改后,再次执行 git review r64
提交
注意:
- 提交 gerrit 测试之后在提交的 comment 里会生成 changeId。再次提交时,要保证 changeId 不变,才会追加到上一次的 gerrit 里
其它 git 操作
把远程某个分支 cherry-pick 到本地的 r64 分支:
git fetch origin
git checkout r64
git cherry-pick a-hash # 远程分支的哈希值
git add conflicted-file # 如果有冲突,解决冲突之后标记冲突已解决
git cherry-pick --continue # 解决冲突之后继续 cherry-pick 过程
要更新远程主分支到本地并合并成一个提交:
git pull --rebase origin r64 # 拉取远程分支并和本地分支合并成一个提交
git add file # 如果有冲突文件,解决冲突后要标记
git rebase --continue # 继续
合并最近两个提交:
git rebase -i HEAD~2 # 合并最近两个提交
查看修改
查看最新提交所有的修改内容:
git show HEAD
查看所有修改的文件:
git show --name-only --pretty="" HEAD
查看特定文件的修改:
git show HEAD -- path/to/file.cpp
git 撤销提交
撤销对某个提交文件的修改:
git checkout HEAD^ -- config/clangFormat/pre-commit
只撤销提交,保留代码更改:
git reset --soft HEAD~1
撤销提交,保留修改,但不在暂存区:
git reset --mixed HEAD~1
彻底撤销提交和修改:
git reset --hard HEAD~1