乐趣区

git的使用

代码提交

  • 回退到某个版本: 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)


查看 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 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 完
退出移动版