1. 查看一个 commit 属于哪个分支
git branch -r --contains COMMIT_ID
2. 查看有没有合并过某分支
# 在目标分支上,执行 git log | grep branchName
git log | grep branchName
3. 将一个分支的某一个 commit 转移到另一个分支上
# 在目标分支上,执行 git cherry-pick COMMIT_ID
git checkout targetBranch
git cherry-pick COMMIT_ID
git push origin targetBranch
4. 版本回退
git reset
- 如果执行了错误的 commit,想撤销 commit,但又想保留代码的修改,可以使用 git reset --mixed
git reset --mixed # 文件退出暂存区,但是保留了代码的修改,可以继续修改提交
- 如果彻底回退到某个版本,不需要保留历史记录的话,可以使用 reset --hard (切记,此参数不会保留历史记录哦,确定自己是需要这样的话,再使用)
git reset --hard HEAD^
git push origin branchName -f # -f 或 --force
git revert
revert 是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在,而 reset 是指将 HEAD 指针指到指定提交,历史记录中不会出现放弃的提交记录。
git revert HEAD^
git push origin branchName
5. 拉取某个远程分支到本地
git fetch origin branchName
git checkout branchName
6. 查看远程仓库地址
git remote -v
7. 删除本地分支
git branch -d branchName # 如果此分支中有未完成的提交,用 -d 删除不掉,需要用 -D
git branch -D branchName # 不管分支中有无未完成的提交,都可以用 -D 删除掉
8. 合并分支
git merge branchName # 默认采用快进模式,通过指针快速移动到另一个 commit 上
git merge --no-ff branchName # 强制关闭快进模式,在目标分支上 创建一个 新的 commit
git merge --no-ff 详细参考:# Git 合并时 --no-ff 的作用