代码提交

  • 回退到某个版本: git reset XXX(commit的id)
  • 生成新的changeID:git commit --amend(针对gerrit,abandon后,再次提交需要生成新的changeId)
  • 拉取代码:git pull --rebase
  • 添加到暂存区:git add .
  • 提交commit:git commit -am XXXX(备注信息)(防止出现冲突和merge的情况,先git pull --rebase再commit)
  • push到远程:git push origin HEAD:refs/for/branchName

多条commit合成一条commit

git rebase -i commitId(你想要合并的几个commitId的之前的commitId)

clipboard.png

clipboard.png

clipboard.png
查看log,已经变成一条commit

分支的操作

  • 新建一个分支,并切换到该分支: git checkout -b branchName(分支名)
  • 推到远程分支:git push origin -u branchName(分支名)
  • 切换分支/切换上一个分支:git branch -
  • 删除本地分支:git branch -D branchName(分支名)
  • 不小心删除了远程分支(本地分支还木有删除): git push origin branchName:branchName

stash

  • 保存暂存区和工作区的工作进度:git stash save XXXX(进度的信息,比如修改样式)
  • 查看stash list:git stash list
  • 获取stash list的某一个到工作区(并在list删除):git stash pop stash@{2}
  • 获取stash list的最后保存(第一个)到工作区(并在list删除):git stash pop

合并代码

1.(commit较少时,cherry-pick合并到dev)

  • checkout dev
  • git pull --rebase
  • git cherry-pick commitID
  • 如果是图片冲突git checkout --ours .来解决冲突保留原本的,git checkout --theirs . (传进来的)
  • 如果代码有冲突,编译器解决冲突后,git add .
  • git cherry-pick --continue
  • 如果想放弃合并:git cherry-pick --abort

2.(commit较多时,rebase合并到dev)

  • checkout dev
  • git pull --rebase
  • git rebase -i branchName
  • 清除光标之前的所有提交记录:gg+d+G
  • noop
  • git pull --rebase
  • 如果不是你想合并的commit,可以忽略:git rebase --skip
  • 如果有冲突,解决冲突,git add .
  • git rebase --continue
  • 直到所有的都rebase完

芹菜妹纸
75 声望2 粉丝