git branch 、 git tag、等常用的增删改查 (本地和远程)
分支 branch
本地分支及远程分支的增删改查
增加
- 创建本地新分支:
git branch <branch-name>
- 切换到本地指定分支:
git checkout <branch-name>
- 创建并切换到本地新分支:
git checkout -b <branch-name>
- 推送本地分支到远程:
git push origin <branch-name>
删除
- 删除分支:
git branch -d <branch-name> # 安全删除,只有当分支已经合并到其它分支时才会删除
git branch -D <branch-name> # 强制删除,不论分支是否合并都会被删除
- 删除远程分支:
git push origin --delete <branch-name>
当我删除与标签同名的分支时出现错误,如果你尝试删除与 tag 同名的分支,你可能会收到错误消息。你将看到类似于 branch-or-tag-name matches more than one 的错误。
git push origin :refs/heads/branch-name #如果你想指定删除分支而不是 tag,请尝试以下命令:
git push origin :refs/tags/tag-name #如果你想指定删除 tag 而不是分支,请使用以下命令:
修改
- 重命名分支:
git branch -m <old-branch-name> <new-branch-name> # 修改当前分支的名称
git branch -M <old-branch-name> <new-branch-name> # 修改其他分支的名称,如果当前处于要重命名的分支上,使用-M可以避免错误
- 重命名远程分支
git push origin:<old-branch-name> <new-branch-name> # 删除远程旧分支,并推送新分支
查询
- 查看分支:
git branch
git branch -a #命令查看所有分支(包括本地和远程分支)的列表
- 查看远程分支:
git branch -r
标签 tag
本地标签及远程标签的增删改查
增加
- 创建本地 tag:
git tag <tagname> # 新增不带标注的tag,tag指向当前HEAD
git tag -a <tagname> -m "your message" #创建带有注释的标签
- 推送 tag 到远程:
git push origin <tagname>
git push --tags #推送所有标签
删除
- 删除本地 tag:
git tag -d <tagname>
- 删除远程 tag:
git push --delete origin <tagname>
git push origin :refs/tags/<tagname> #删除远程tag版本
查询
- 查询本地 tag:
git tag
- 查询远程 tag:
git ls-remote --tags
- 远程拉取所有 tags:
git fetch origin --tags
远程仓库 remote
远程仓库的操作
- 查看远程库的详细信息:
git remote -v
- 添加远程库:
git remote add origin [url]
- 删除远程库:
git remote remove origin
- 从远程库拉取代码并合并到本地:
git pull origin <branch-name>
其它常用操作
- 合并某分支到当前分支:
git merge <branch-name>
- 提交不校验团队的规则:
git commit --no-verify -m "message"
- 撤销工作目录中的修改(未暂存):
git checkout -- <file>
- 撤销暂存区的修改(已暂存但未提交):
git reset HEAD <file>
git checkout -- <file>
- 回退到上一次提交的状态(丢弃最近的提交):
git reset --hard HEAD^
- 回退到特定的提交(丢弃这个提交之后的所有更改):
git reset --hard <commit_hash>
- 撤销之前 push 到远程仓库的提交:
git revert <commit_hash>
- 或者如果需要修改已经 push 的提交:
git commit --amend
git push origin <branch_name> --force
注意:使用 git reset --hard 和 git push --force 时要谨慎,因为这些操作会重写历史并可能影响其他协作者