一、代码有冲突时 不要用git pull,然后git push,用下面的方法
1. 远程分支名为 origin/feature
git checkout -b base origin/feature # 新建base分支,用来rebase
git checkout base #切换到base分支,如果已经在base分支就不用切换了
git pull #在base分支拉取最新代码
2. 然后 在feature分支rebase代码
git checkout feature #切换分支
git rebase base #变基,基于当前feature分支,把base分支的代码放到当前分支
git status 查看状态,
git rebase --continue # 合并代码
3. 如果有冲突就去代码中解决冲突,然后push
git status
git push origin HEAD:refs/for/feature #push代码
二、多次代码合并提交 用到--amend
git add .
git commit --amend
(:wq)
git push origin HEAD:refs/for/....
三、将CC_vivo_v8.0分支的头,合并移到baseline_8.0.5.1_dev的头后
git checkout baseline_8.0.5.1_dev
git checkout CC_vivo_v8.0
git merge $(git commit-tree -p HEAD baseline_8.0.5.1_dev^{tree} -m "SPD1926[B200423-3419] 共线分支合并
修改原因:分支合并;
解决方法:合并分支;
测试建议:分支是否合并异常")
git commit --amend
git push origin HEAD:refs/for/CC_vivo_v8.0
四、切换远程分支
git checkout -b 本地分支名 origin/远程分支名 git checkout -b CC_vivo_v8.0 origin/CC_vivo_v8.0
代码提交行数
git log --author="liyuehui" --pretty=tformat: --numstat | awk '{ add += 2; loc += 2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -
cherry-pick 有冲突时, a分支要把代码cherry-pick到b分支 有冲突时
1. 从a分支的gerrit上copy cherry-pick命令
2. 在b分支命令行中输入pull到最新,然后cherry-pick命令
3. 解决完冲突
4. git add .
5. git cherry-pick --continue
6. :wq
7. git push origin HEAD:refs/for/b
git push有冲突的话
在当前分支
git reset HEAD^^^ --hard [已经push的情况下]
git pull
在当前分支gerrit复制cherry-pick命令
解决冲突
git add .
git cherry-pick --continue
:wq
git push origin HEAD:refs/for/branch
as使用git方式:
1.ctrl+alt+s进入设置界面;
2.version control 进行版本控制;
3.左下角"+"号,用于添加版本控制项目,可以在AS项目中查看修改
git用rebase合并提交的冲突
假设:本地分支为:CC_vivo_v8.0;远程分支为:origin/CC_vivo_v8.0
1. git checkout -b base origin/CC_vivo_v8.0 ##新建base分支,
2. git pull ##更新代码 当前是base分支
3. git checkout CC_vivo_v8.0 #切换分支
4. git rebase base ## CC_vivo_v8.0分支,
5. git status ##查看合并状态
6. 合并冲突
7. git add .
8. git rebase --continue
9. git push origin HEAD:refs/for/CC_vivo_v8.0 在base分支上,将代码提交到远程