引言: git工具一键隐藏"学习资料"是怎么回事呢?git工具相信大家都很熟悉,但是git工具一键隐藏"学习资料"是怎么回事呢,下面就让小编带大家一起了解吧。git工具一键隐藏"学习资料",其实就是作者闲得无聊, 学习git的使用,大家可能会很惊讶git工具怎么会一键隐藏"学习资料"呢?但事实就是这样,小编也感到非常惊讶。这就是关于git工具一键隐藏"学习资料"的事情了,大家有什么想法呢,欢迎在评论区告诉小编一起讨论哦!
本篇旨在使用一个妙趣横生的小例子, 帮助熟悉git操作指令, 理解分支、工作区暂存区等概念
目标: 使用git工具, 一键表面隐藏电脑文件夹下的某些不可外传的"学习资料"
例如, 笔者电脑中恰好就有这么一个文件夹, 尝试使用git版本控制的方式, 将其隐藏:
此处为了本人名声与过审需要, 有必要打开这个文件看一下里面的内容(狗头):
是北京尚学堂•百战程序员•JavaWeb框架全集(狗头):
演示效果: 执行chang_branch.bat 隐藏原文件显示nothing.txt, 执行 show.bat 显示 原有的文件
接下来为技术内容,
并非权威指导/git教程, 主要为笔者学习过程中的个人笔记:
实现方法:
0 配置git工具环境
网上有很多很多教程,不在此赘述
1 git init操作
使用git init 操作可以加创建一个 .git的隐藏文件夹, 学名叫做 git 的版本库, 说白了就是初始化;
此时相当于我们告诉git工具, 我要让他帮我管理我的"学习资料"的这个文件夹
2 git add .
使用"git add ." 操作可以将当前工作区中的所有文件添加到缓存, 注意加.是所有文件, 也可以使用文件名
init仅仅是告诉git管理这个文件夹, 但他还没有追踪到文件夹里面的项目, 使用add将文件加入到缓存中, 为提交做准备
3 git commit -m "你的版本注释"
使用 git add 命令将想要快照的内容写入缓存区,
而执行 git commit 将缓存区内容添加到仓库中。
到这一步, 你才将你文件夹下面的文件, 成功的提交到了仓库里.
这里的git已经保存了此刻的状态(版本), 有了一个版本, 即master. 这个分支里面有你的学习资料, 意思就是及时以后你的学习资料被删了, 进入到这个版本中, 你的学习资料也会被git恢复
4 git branch new_branch
建立一个新的分支,
当你执行 git init 的时候,默认情况下 Git 就会为你创建 master 分支。
如果我们要手动创建一个分支。执行 git branch (branchname) 即可。
我们建立了一个新的分支, 这样在这个新的分支里面操作(删掉我们的学习资料) 也不会影响到主分支了.
5 git checkout new_branch
进入这个分支, 上一条语句的意思是创建, 但并没有进入新分支的操作状态. 使用 git checkout new_branch 进入
此时已经进入了一个新的状态, 可以对宝贵的学习资料为所欲为了
6 git rm -r *
递归删掉当前目录下的所有文件
直接删掉我们的学习资料!
7 type nul>nothing.txt git add nothing .txt
创建一个nothing.txt 文件, 看起来别太尴尬而已,
任然是使用git, 管理这个nothing.txt文件
此时这个版本中, 已经删掉了所有的学习资料, 只留下了一个nothing.txt 也是后来我们想让他人看到的状态
8 git commit -m "提交版本的注释"
将这个版本提交
从 修改文件 -> git add ->git commit 三连下来,才可成功修改仓库
此时准备工作已经dagong大功告成!
9 分析与实际过程演示
9.1 分析:
其实就是建立了两个分支(控制两个版本),
一个版本是: 我们的学习资料, 让git 帮我们保管, 叫做master分支
另一个分支是: 我们想让他人看到的版本, 我们起名叫做new_branch, 这个分支里面只有一个nothing.txt文件夹
所以在后续中, 我们只要切换当前的分支, git就可以自动帮我们切换文件夹中显示的内容
9.2 演示:
执行过程:
10 git checkout master
使用git checkout 分支名 可以进入一个分支!
此时通过执行:
git checkout master
git checkout new_branch
两条指令, 我们就可以实现文件夹中内容的转换啦
11 封装与优化
最后, 我们只要将显示隐藏文件夹的选项关闭
写两个简单的.bat文件
就可以实现双机bat文件隐藏或者显示我们学习资料啦!
注意: 如果有汉字在bat文件中, 要使用ANSI编码哦
12 实际意义与git Clone浅谈
隐藏文件夹当然更快, 进过这一轮的操作, 可以很好的理解git 版本控制的强大!
今天想从码云上clone一个项目, 一个项目有多个分支, 然后其中有两个分支分别是两个差别很大的项目, 项目A和项目B; 我都想要下载下来;
当我想下载分支A的时候, 码云给了我一个用于clone 的URL,
当我看完了项目A,想下载项目B的时候, 码云也提供给我了一个URL,
我惊奇且弱智的发现这两个URL居然是同一个... 不禁产生了思考...
我下载下来之后, 文件夹里的内容也是A的内容, 那我该怎么下载项目B呢?
难道覆盖过的分支就没办法恢复了吗?
查阅了几个资料才发现, 原来clone是将所有的版本都下载到了你的本地文件夹! 我们只需要按照上边演示的操作, 进入不同的分支, 就能自动变换文件夹中的内容! (这个问题太弱智太低级了, 百度上问的人比较少, 我查了白天资料才明白....)
然后顺带着白天学习了一些 git 的基本使用, 就尝试着用本地的一些资料进行了版本控制的学习与深入的理解.
幸甚至哉! 发个博客!
希望可以帮助到一些和我一样刚开始学git的小白们更快的理解~
欢迎一起讨论学习!