小编有言
使用git的好处不多说,网上有非常多的博客讲解了其逻辑结构。最最主要的功能版本控制,真的是所有代码爱好者的福音了。
建议不熟悉git逻辑的同学宝宝先了解一下git的逻辑再阅读本文,会更顺畅哦,(一个梦幻拉丁式谢礼)。
我将以我的一个测试仓库进行演示~~ 仓库初始化过程演示:1 确认系统拥有git工具
查看服务器上是否已经安装好git, 服务器上有自带的git,直接使用即可,不需要自行安装了
which git
![36ba049f5a7b52a9949e6a0b92c98983.png](https://i-blog.csdnimg.cn/blog_migrate/cb2dd711f485ec497812f44c3c57b19a.png)
2 对仓库进行初始化
进入到对应的目录,然后执行git init命令即可
git init
3 查看工作区工作状态
查看工作目录+stage+HEAD的状态,发现工作目录有一个rdetfq.py文件,但是没有被加入到stage,也没有commit到HEAD过。
git status
![fb74ec6d7fd9287ff9a9c4e70df3fc92.png](https://i-blog.csdnimg.cn/blog_migrate/fdb5d95853470131efd25202356708d2.png)
4 对工作区的文件进行stage
于是add rdetrfq.py add 到stage, 没有任何信息输出,Linux的核心,没有消息就是好消息之一。
git add rdetrfq.py
5 再次查看工作区状态
再次查看status, 发现提示rdetrfq.py已经被add到stage区,在等待被commit到HEAD
git status
![9a210e1781a954bfe78a11a856e5d3f9.png](https://i-blog.csdnimg.cn/blog_migrate/40171c18ebede3022ceb2de752ab0ddb.png)
6 commit stage的内容到HEAD区:
将stage中的所有内容commit 到HEAD区, -m是注释信息,注明本次commit所做的信息
git commit -m "add code of randomly extracting fq"
![1f05321aa2f0e29933c6892770e5fb20.png](https://i-blog.csdnimg.cn/blog_migrate/264de0f5d8f48fc0a1bbc1db0910dfab.png)
7 再次查看工作区状态:
再次查看工作区的状态,显示working tree clean, 工作区的东西在HEAD区中都有,版本一致git status
![1b967962cbbf916645f7dfee33a32d17.png](https://i-blog.csdnimg.cn/blog_migrate/871666e0d65d83ac8ebcb7cdb4485250.png)
1 TIP 1
如果已经commit 多个不同的版本到HEAD,想回到以前commit的版本,例如回退一个版本:
git reset --hard HEAD~1
![8d85fcb78356ca2cc7ed10b69e32d336.png](https://i-blog.csdnimg.cn/blog_migrate/d386b03d63fa3548365a3aa0f9f7bd4e.png)
2 TIP 2
TIPS1:如果你想撤销add到stage区的文件,使用git reset HEAD +文件,这里的单独的HEAD指的是当前版本例如撤销stage区的test文件:(相当于撤销一次对stage区的操作)git reset HEAT test
![b9668a79048a9020b23d6ee1c9131eed.png](https://i-blog.csdnimg.cn/blog_migrate/3ecdc7728b74229594ff9c2cda30cdc5.png)
3 TIP 3
如果在工作区中对test文件进行了修改,但是并不想保留修改,则使用git checkout撤销在工作区中对t est文件进行的修改,相当于从HEAD中把当前版本的test copy出来,-- 是指定在当前branch,如果不加--,在多branch的情况下会切换到其他的branch进行操作,而不是对test这个文件进行操作git checkout -- test
![feff9c5dce3ba12d9fe5a68d8d778468.png](https://i-blog.csdnimg.cn/blog_migrate/09952eded26bc1fa07b92c28363be874.png)
4 TIP 4
如果你想从HEAD中删除某个文件: 则使用git rm file来对file进行删除, 然后需要git commit此次操作到HEADgit rm rdetrfq.py
![e08abd5c203c333b6b2ef0a3611b42ac.png](https://i-blog.csdnimg.cn/blog_migrate/2723a9c57611323ddcf66d95f95905ff.png)
5 TIP 5
但是如果还没有进行commit到HEAD, 又想恢复文件的话,则需要先撤销一次对stage的操作, git reset HEAD file,这是把指针指回当前HEAD, 相当于忽略git rm file这一步操作
git reset HEAD rdetrfq.py
![c6c03c2003878bf1e48a2dd5dc6771ca.png](https://i-blog.csdnimg.cn/blog_migrate/a0a6daa428d07d0a3a2c527fdfde6aef.png)
6 TIP 6
通过TIPS5指针指回当前HEAD之后,再checkout 从HEAD区copy来对应的文件,可以看到紫粉色文件已经恢复到工作区![8ad644e238138c929fdb7266c58f36f5.png](https://i-blog.csdnimg.cn/blog_migrate/f9bf7864b61d0721e792b0dd98aff215.png)
7 TIP 7
如果只是linux 命令rm误删了某个工作区的文件:则直接使用git checkout可从HEAD里召回当前版本的该文件
git checkout rdetrfq.py
结语
git还有非常多非常多的很好用的功能,一起探索呀~
![38ae899c190fc42309e8f797df16e271.png](https://i-blog.csdnimg.cn/blog_migrate/3f7573f7443a0935fe0edac348aa894c.png)
参考
![f412bb4c2033448755029a54a1f2e1b9.png](https://i-blog.csdnimg.cn/blog_migrate/fd6d1fe3edf74678bb87867bcdb7d3d6.png)
1.https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%85%B3%E4%BA%8E%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6
2.https://blog.csdn.net/chenxiqilin/article/details/53941419
![55bbfbb1af727c10c1a1b86d372d34d2.png](https://i-blog.csdnimg.cn/blog_migrate/c89c394d7de205aa96097a32f38c5a87.png)
凡是过往,皆为序章~~
可通过以下方式可找到本公众号及主编,我们做快乐的分享,看到私信的时候也会尽量解答疑问,但请谅解我们时间安排很紧张,都是在校的学生群体,学习也不能落下~~
无论天涯共勉之~~
洁宝儿敬上
关注公众号
一起学习呀
数言微语
![6fcaf2c2c1b6af1bf3ec4cde8f9f1e04.png](https://i-blog.csdnimg.cn/blog_migrate/77b9542b2f6e14d7cdb00d75abc9e4db.jpeg)
找到小编辑
我们做朋友呀
数言微语
![479b3953f511b9ac08d475a951109bdb.png](https://i-blog.csdnimg.cn/blog_migrate/c9eae4fda2c9223dcd4f058eb8113a95.jpeg)
![c6ea00c05f87960b2f97c84ecab971a1.png](https://i-blog.csdnimg.cn/blog_migrate/c4bb7492a2e76131583076d03d6a4f86.png)
你点的每一个在看,我都认真当成了喜欢