删除版本库中的文件 :
图一 :
图二 :
图三 :
分支属于 Git 杀手级别的功能 , 下面通过一个小故事简单了解一下啥事分支.
图一 :
图二 :
图三 :
图一 :
图二 :
图三 :
图四 :
图五 :
图一 :
图二 :
图一 :
图二 :
图三 :
图四 :
图五 :
图六 :
图七 :
到目前为止,我们已经使用了 两次 merge
操作 , 第一次 使用 git merge
操作 将 dev 分支和 master 分支合并的过程是非常顺利的 , 第二次 merge
操作 出现了 合并冲突, 我们在解决 合并冲突 ,进行了 一次 commit
操作 .
对于这两次 merge
操作就分别对应 Git
提供的两种合并模式.
关于 Fast-forward Merge 模式 ,还是通过命令带大家熟悉一遍
git add
命令标记文件为已解决,然后使用 git commit
提交合并结果。
图一 :
图二 :
图三 :
图四 :
在实际开发中 , 我们应该按照几个 基本原则进行分支管理 : 首先 master 分支应该是非常稳定的, 也就是仅用来发布新版本 , 平时不能再上面干活.
这里关于分支策略先了解到这里,后面 会通过 实践 慢慢带大家理解 ,当前只需要知道 我们可以通过 分支实现多人开发 .
这里介绍一个 在使用 Git 的时候 遇到的场景 .
关于 拉去 一个 专门 解决 bug 的分支 ,然后修改 bug ,合并 等操作 ,上面都说过 , 这里就不再演示了 , 如果不会可以再回去看看上面的步骤 , 下面就来看另外一个场景.
图一 :
图二 :
图三 :
图四 :
图五 :
图六 :
图七 :
图八 :
看完 bug 分支 ,这里再来介绍一个将来再使用 git 中可能遇到的问题.
图一 :
最后对分支做个小结:
分⽀在实际中有什么⽤呢?假设你准备开发⼀个新功能,但是需要两周才能完成,第⼀周你写了50%的代码,如果⽴刻提交,由于代码还没写完,不完整的代码库
会导致别⼈不能⼲活了。如果等代码全部写完再⼀次提交,⼜存在丢失每天进度的巨⼤⻛险。现在有了分⽀,就不⽤怕了。你创建了⼀个属于你⾃⼰的分⽀,别⼈
看不到,还继续在原来的分⽀上正常⼯作,⽽你在⾃⼰的分⽀上⼲活,想提交就提交,直到开发完毕后,再⼀次性合并到原来的分⽀上,这样,既安全,⼜不影响别⼈⼯作。
并且 Git ⽆论创建、切换和删除分⽀,Git在1秒钟之内就能完成!⽆论你的版本库是1个⽂件还是1万个⽂件。
到目前为止我们所学习的操作都是在本地完成的 , 比如 : 工作区 ,暂存区 ,版本库 之间的操作 (git add xxx , git commit -m “xxx” 等命令) .
另外 : 关于我们对 Git 的了解其实只了解了一半 Git , 知道了 Git 是一个 版本控制系统 , 下面来了解另外一半 分布式 , Git 其实是一个分布式版本控制系统.
图一 :
图二 :
GitHub: Let’s build from here · GitHub
工作台 - Gitee.com
下面的内容, 会使用 Gitee 来演示 ,GitHub 是一样的 .
图二 :
图三 :
图四 :
图五 :
图六 :
简单 介绍完 gitee 里面的仓库 ,下面我们将远程仓库 克隆到本地仓库.
图一 :
使用: HTTPS 协议 克隆远程仓库
使用 SSH 协议 完成克隆操作
图一 :
图二 :
克隆完成远程仓库 ,接下来我们就来 将 本地仓库的修改 推送到远程仓库中
图一 :
图二 :
注意: 这里 远程仓库 和 本地仓库 要建立链接 才能进行 推送 , 这里 本地仓库的 master 和 远程 仓库的master 之所以 能够推送是因为 在克隆的时候 git 会自动帮我们 建立联系 (只针对 master 分支)
图一 :
图二 :
在⽇常开发中,我们有些⽂件不想或者不应该提交到远端,⽐如保存了数据库密码的配置⽂件,那怎 么让 Git 知道呢?
在 Git ⼯作区的根⽬录下创建⼀个特殊的 .gitignore ⽂件,然后把要忽略的⽂件 名填进去,Git 就会⾃动忽略这些⽂件了。 不需要从头写 .gitignore ⽂件,
gitee 在创建仓库时就可以为我们⽣成,不过需要我们主动勾选⼀ 下:
图一 :
图二 :
标签 tag
,可以简单的理解为是对某次 commit 的⼀个标识,相当于起了⼀个别名。例如,在项⽬ 发布某个版本的时候,针对最后⼀次 commit 起⼀个 v1.0 这样的标签来标识⾥程碑的意义。
这有什么⽤呢?
相较于难以记住的 commit id
, tag
很好的解决这个问题,因为 tag ⼀定要给⼀ 个让⼈容易记住,且有意义的名字。当我们需要回退到某个重要版本时,直接使⽤标签就能很快定位到。
图一 :
图二 :
上面在 本地 进行了一些标签操作 (新增 , 查看 , 删除 标签) , 下面我们在 远程仓库中进行一些标签操作.
图一 :
图二 :
本文使用到的命令 :
命令 | 功能 |
---|---|
git branch | 查看本地分支 |
git branch xxx | 创建本地分支 |
git checkout xxx | 切换分支 |
git cat-file -p xxx | 查看一下 dev 存放的 ·commitId 指向的对象 |
git merge xxx | 合并分支 |
git branch -d xxx | 删除 xxx 分支 |
git checkout -b xxx | 创建 并切换到 xxx 分支 |
git merge --no-ff -m “xxxx” xxx(分支名) | 使用非 Fast-forward 模式进行合并 |
git clong + 协议提供的克隆链接 | 将远程仓库克隆到本地仓库 |
git push + origin (远程仓库名) + 分支名(本地仓库) : 分支名 (远程仓库) | 将本地仓库 修改 提交到远程仓库 |
git pull + origint (远程仓库名) + 分支名(本地仓库) : 分支名 (远程仓库) | 将远程仓库的代码拉取到 本地仓库 |
git config (–global) + alias.xxx(别名) + xxxx (需要别名的命令) | 别名操作 |
git tag xxx | 创造 标签 |
git tag | 查看标签 |
git tag -d xxx(要删除的标签名) | 删除标签 |
git show xxx (标签名) | 查看标签描述 |
git push 标签名 | 对新增的标签进行推送 |
git push origin --tags | 将所有的标签进行推送 |
git push origin : xxxx | 对 本地删除了的标签进行推送 (删除远程仓库中的标签) |