目录
tag相关操作
操作 | 命令 | 说明 |
---|---|---|
创建标签 | git tag <tag_name> <commit_hash> |
创建一个轻量标签(无附加信息),指向指定的commit。 |
查看所有标签 | git tag |
列出所有本地标签(按字母顺序)。 |
查看标签详情 | git show <tag_name> |
显示标签的详细信息(包括提交记录和标签注释)。 |
删除本地标签 | git tag -d <tag_name> |
删除本地标签(不影响远程)。 |
推送单个标签 | git push origin <tag_name> |
将指定标签推送到远程仓库。 |
推送所有本地标签 | git push origin --tags |
推送所有本地尚未存在于远程的标签。 |
删除远程标签 | git push origin --delete <tag_name> |
删除远程仓库的标签(需先删除本地标签)。 |
查看远程标签 | git ls-remote --tags |
查看所有远程标签。 |
切换到标签 | git checkout <tag_name> |
切换到标签对应的代码状态(只读,建议基于标签创建新分支进行修改)。 |
远程仓库(未初始化)关联本地仓库
一、远程仓库
创建远程仓库时,不要对仓库进行初始化,所以不要勾选下面的选项。
勾选后会对仓库初始化会有一次commit提交,当关联本地仓库后执行git pull时会报错。
You have divergent branches and need to specify how to reconcile them.
这个错误信息表示本地和远程仓库的 master 分支有分歧(divergent branches)。
也就是说,本地和远程的 master 分支都做了一些独立的提交,它们的历史发生了不同的变化。
Git 无法自动判断应该如何合并这些更改,因此你需要明确告知它应该使用哪种策略来合并这些分支。
当我们不初始化时,进行下一步会来到这里
二、关联本地仓库
我们cd到项目的根目录下,然后执行下面的命令初始化本地仓库。
git init
然后观察下分支跟远程分支是否同名,现在默认分支是main,但有些托管网站的默认分支是master,所以我们需要将本地仓库的main分支重命名。
重命名分支的命令如下:
git branch -m main master
然后执行下面指令关联并追踪远程仓库
// 关联远程仓库
git remote add origin https://e.coding.net/lxy911/xyapp/XYApp_Flutter.git
//如果你之前已经执行过,想重新指定,可以用:
git remote set-url origin <远程仓库地址>
// 查看是否关联成功
git remote -v
// 追踪远程仓库
git push -u origin master
远程仓库(已初始化)关联本地仓库
远程仓库已经初始化,并且有了一次初始化提交
本地仓库是一个已经存在很多提交的仓库
先将本地仓库和远程仓库做关联
方式一:放弃远程的那次初始化提交(强制覆盖)
git remote add origin <远程仓库地址>
//如果你之前已经执行过,想重新指定,可以用:
git remote set-url origin <远程仓库地址>
git push -u origin main --force
方式二:保留远程的那次初始化提交
# 进入你的本地仓库
cd /path/to/your/local/repo
# 1. 添加远程仓库(如果之前没添加过)
git remote add origin <远程仓库地址>
# 2. 抓取远程分支
git fetch origin
# 3. 把远程 main 合并到本地 main
# --allow-unrelated-histories 允许两个互不相关的提交历史合并
git pull origin main --allow-unrelated-histories
# 如果有冲突解决好冲突需要解决冲突
# 4. 推送到远程,并建立跟踪关系
git push -u origin main
行者常至,为者常成!