git 多人开发常用操作
本地分支推送到远程分支上
git push --set-upstream origin [远程分支名]
取别人的commit到自己的分支上
git cherry-pick [commit id] 单个
git cherry-pick [x..y] 范围
git cherry-pick --abort 放弃捡樱桃
假设有三个commit id
commit a 信息a
commit b 信息b
commit c 信息c
首先checkout到其他分支拉取最新代码,然后git log 查看记录,然后切回自己的分支
因为cherry-pick是左开右闭区间,所以要获取信息b到a的commit 就要 git cherry-pick c..a
注意事项: 如果提示 fatal: Invalid revision range c.. a, 一般是因为a是最新的commit,但是本地没有拉取最新代码,所以无效范围
合并多个commit为一个
- 切到dev分支, pull最新的代码
- 切回local分支
- 通过 git rebase -i xxx(xxx为local分支第一次提交之前的commit哈希值)将本地的多次提交合并为一个, 以简化提交历史
- git reset --soft HEAD^ (撤回上次的提交,因为已经合并了,所撤回的是所有的修改) 可选
- git push -f (强推, 因为本地commit hash值和远程服务器commit hash值不一样,所以需要强推)
撤回提交的commit
git reset --soft HEAD^ 上一次 也可以写成HEAD~1
git reset --soft HEAD~2 撤回前两次提交的commit
commit修改注释
git commit --amend