Git标签使用技巧

1.远程仓库中拉取指定分支

一定遇到这种情况,github看到一个心仪的开源仓库,但是分支太多,我们只想要我们需要的分支。

git clone -b <指定分支> <远程仓库地>

2.递归克隆

项目里包含的一些库或者一些模块是存在了别的仓库,可以用递归来克隆回来。一次性就能解决所有的依赖模块

git clone --recursive https://github.com/dotnet/aspnetcore.git

3.切换到指定分支

分支众多,要切换到指定分支

#branch分支管理
git branch
git switch 分支名

4.创建标签

git tag v1.0
#默认标签是打在最新提交的commit上

5.为指定的commit id创建标签

上面标签,是为最新的一次提交创建的。但是我们想吃后悔药——为之前的提交创建标签,该怎么做呢!?

6.删除标签

7.推送标签至远程仓库

8.切换至标签

9.本地没有远程标签

10.gitignore文件重新生效

从gitee 创建仓库,可选择创建不同项目下.gitignore文件模板。但是我们修改.gitignore文件,并不生效。.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的,把要忽略的文件改为未track状态

11.本地关联远程

一般情况,常规操作是先在github或者gitee创建远程仓库,然后

但是还有一种情况,先通过git init创建的本地仓库,突然发现今天写的代码太优美了,要整个远程仓库存起来。

12.变基->快进合并

将提交到某一分支上的所有修改都移至另一分支上,就好像“重新播放”一样(将一个分支的修改操作在另一个分支最新的提交基础上在依次应用)。

rebase干了什么?

  • 找到masterdev最近一个共同的父commit对象

  • 并找出这个共同的父commit对象到dev分支最新提交对象之间的所有对象,将这些对象依次添加至master分支最新一次提交后。这个过程很像将一个数组追加到另一个数组,没错append操作。

  • 这时我们git rebase master会提示有冲突(因为我们在master和dev可能修改了相同的文件),对冲突文件进行手工合共,然后git add .标记冲突解决,git rebase --continue告诉Git冲突已经解决。

  • dev分支上变基(git rebase master)。这时我们回到msater分支执行 git merge dev就可以进行"快进(fast-forward)“模式合并。

最后更新于