实用 git 命令

194 阅读2分钟

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 的作用