三.Gitee远程操作标签操作
1.理解分布式版本控制系统
我们⽬前所说的所有内容(⼯作区,暂存区,版本库等等),都是在本地!也就是在你的笔记本或者计算机上。⽽我们的 Git 其实是分布式版本控制系统!什么意思呢?
╔═════════════════════════════════════════════ ║ 你的电脑(完整仓库) ║ ┌──────────┐ ┌──────────┐ ║ │ 工作区 │ ⇆ │ 暂存区 │ ⇆ 版本库 ║ └──────────┘ └──────────┘ ╚═════════════════════════════════════════════▲ push/pull/fetch│ ╔═════════════════════════════════════════════ ║ 远程仓库(通常托管在 GitHub / Gitee / GitLab) ║ 只保存 **版本库**,不关心你的工作区和暂存区 ╚═════════════════════════════════════════════
本地仓库 = 工作区 + 暂存区 + 本地版本库
远程仓库 = 纯粹的“中央版本库”,仅用来与他人交换历史
2.远程仓库
1.在gitee上创建远程仓库
2.git clone下载远端仓库
克隆/下载远端仓库到本地,需要使⽤ git clone 命令,后⾯跟上我们的远端仓库的链接,远端仓库的链接可以从仓库中找到:选择“克隆/下载”获取远程仓库链接:
3.向远程仓库推送git push
本地已经 clone 成功远程仓库后,我们便可以向仓库中提交内容
git remote -v看远程列表
origin → 远程仓库的“昵称”(默认在 clone 时自动取名)。
SSH URL → 以后所有拉取/推送都走这条地址。
(fetch)
:git fetch / pull
时用
(push)
:git push
时用git push 推送
git push <远程主机名> <本地分⽀名>:<远程分⽀名>
# 如果本地分⽀名与远程分⽀名相同,则可以省略冒号:
git push <远程主机名> <本地分⽀名>
4.拉取远程仓库git pull
git pull <远程主机名> <远程分⽀名>:<本地分⽀名>
先手动新增内容 再进行git pull
git pull=拉起+合并
5.忽略特殊⽂件 .gitignore
有些文件不想推送到远端 比如代码中间生成的文件 运行的结果 或者说一些隐私文件。
在 Git ⼯作区的根⽬录下创建⼀个特殊的 .gitignore ⽂件,然后把要忽略的⽂件名填进去,Git 就会⾃动忽略这些⽂件了。
git rev-parse --show-toplevel 查找工作区的根目录
eg.
你要做什么 最短做法 发生了什么 把某些文件永远别提交 在项目根目录写 .gitignore
Git 在 status / add
时会过滤这些文件想强行提交被忽略的文件 git add -f file.txt
-f/--force
覆盖.gitignore
想知道文件为啥被忽略 git check-ignore -v <文件>
显示是哪条规则命中的 忽略一大类,又想保留其中某些 用 !例外文件
“先排除、再排除例外” # 通配 *.log # 所有 .log build/ # 整个 build 目录 temp-??.txt # temp-ab.txt、temp-01.txt…# 以 . 开头的隐藏文件全忽略 .*# 但我要保留 .gitignore 自己 !.gitignore
6.配置git config
1.给命令配置别名 alias.别名 '原命令'
git config --global alias.别名 '原命令'
--global 全局配置
eg.给 git log --graph --decorate --abbrev-commit 取别名 lg
graph 图像化 decorate 显示分支名 abbrev-commit 显示较短的提交哈希值
标签操作
标签 tag ,可以简单的理解为是对某次 commit 的⼀个标识,相当于起了⼀个别名。例如,在项⽬发布某个版本的时候,针对最后⼀次 commit 起⼀个 v1.0 这样的标签来标识⾥程碑的意义。当我们进行版本回退的时候 能很快定位到目标位置
1.创建标签
1.git tag 标签直接对最近一次提交打标签
git tag 查看标签
2.git tag 标签 -a commitID 指定提交打标签
git tag 标签 -a commitID -m "注释" 可以给打标签操作添加注释
git show 标签 显示详细的标签信息
2.git push origin 推送标签到远程
推送单个标签
git push origin 标签
推送所有本地标签
git push origin --tags
3.删除标签
1.git tag -d 标签 本地删除
2.git push origin :标签 远程删除
git push <远程名> :<标签名>
等价于:“将空引用推送到远程,覆盖原有的标签”,即删除远程标签