git用法

140 阅读2分钟

一、代码有冲突时 不要用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 += 1;subs+=1; subs += 2; loc += 11 - 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.0base分支上,将代码提交到远程