git是个啥???Git是目前世界上最先进的分布式版本控制系统(没有之一)。 作者:林纳斯.拖瓦兹 .....就是那个写Linux系统的天才~ 版本控制系统分类:集中式:代码集中存储在中央服务器,开发者的客户端只有部分自己的代码,假如中央服务器出问题,会出现数据丢失。传统的版本控制系统:CVS SVN git的部署先声明自己的名字和邮箱 git config --global user.name "LF" git config --global user.email "482929763@qq163.com" 创建版本库什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。 [root@git ~]# mkdir /git [root@git ~]# cd /git/ 通过 [root@git git]# git init 初始化空的 Git 版本库于 /git/.git/ 将文件添加到版本库首先这里再明确一下,所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。 [root@git git]# vim readme.txt #创建文件,模拟代码 [root@git git]# cat readme.txt #查看内容 1 1、上传到暂存区 2、提交到版本库 [root@git git]# ls readme.txt [root@git git]# git add readme.txt #将readme.txt上传到暂存区 [root@git git]# git commit -m "txt" readme.txt #上传readme.txt提交到git版本库,-m“描述” 后边可以接指定名称,也可以不接 [master(根提交) 12a8c22] txt 1 file changed, 1 insertion(+) create mode 100644 readme.txt 版本回退版本修改 [root@git git]# vim readme.txt #添加2
[root@git git]# cat readme.txt
1
2
[root@git git]# git status #查看git仓库的状态
# 位于分支 master
# 尚未暂存以备提交的变更:
# (使用 "git add <file>..." 更新要提交的内容)
# (使用 "git checkout -- <file>..." 丢弃工作区的改动)
#
# 修改: readme.txt
#
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
提交 [root@git git]# git add readme.txt [root@git git]# git commit -m 'add 2' readme.txt [master 5095b03] add 2 1 file changed, 1 insertion(+) 我们工作不停的修改不停的提交,就和以前打游戏通关会自动存档一样,随时可以回到以前的关卡当中!进度不会丢失!!! 我们尝试多修改几次,并提交,顺便巩固前边2个命令! [root@git git]# cat readme.txt 1 2 3 [root@git git]# git add readme.txt [root@git git]# git commit -m "add 3" #上述添加3 [root@git git]# vim readme.txt [root@git git]# cat readme.txt 1 2 3 4 [root@git git]# git add readme.txt [root@git git]# git commit -m "add 4" [master 14340e6] add 4 1 file changed, 1 insertion(+) [root@git git]# #添加4 在实际工作中,我们脑子里怎么可能记得一个几千行的文件每次都改了什么内容,不然要版本控制系统干什么。版本控制系统肯定有某个命令可以告诉我们历史记录,在Git中,我们用 [root@git git]# git log commit 14340e64b91877835d77d4e6ce69ab74822f44ef Author: LF <482929763@qq163.com> Date: Fri Feb 12 21:12:02 2021 +0800 add 4 commit 53546712103a56e5e42ede02fd7b62585f35396b Author: LF <482929763@qq163.com> Date: Fri Feb 12 21:10:51 2021 +0800 add 3 commit 5095b03aac0d16b232b7bc756180f3248c2ac44e Author: LF <482929763@qq163.com> Date: Fri Feb 12 21:06:46 2021 +0800 add 2 commit 12a8c2278d7fcb62f5db76807704e0a1eb9c5e04 Author: LF <482929763@qq163.com> Date: Fri Feb 12 21:00:25 2021 +0800 txt [root@git git]# git log --pretty=oneline #回退环节 首先,Git必须知道当前版本是哪个版本,在Git中,用 我们现在从add 4 回退到 add 3 就可以使用 [root@git git]# git reset --hard HEAD^ HEAD 现在位于 5354671 add 3 [root@git git]# cat readme.txt 1 2 3 #回退成功 [root@git git]# git log #查看当前仓库状态 commit 53546712103a56e5e42ede02fd7b62585f35396b Author: LF <482929763@qq163.com> Date: Fri Feb 12 21:10:51 2021 +0800 add 3 commit 5095b03aac0d16b232b7bc756180f3248c2ac44e Author: LF <482929763@qq163.com> Date: Fri Feb 12 21:06:46 2021 +0800 add 2 commit 12a8c2278d7fcb62f5db76807704e0a1eb9c5e04 Author: LF <482929763@qq163.com> Date: Fri Feb 12 21:00:25 2021 +0800 txt [root@git git]# git reset --hard 14340e6 #id写个前几位就行了不用写全 #但是还有个隐患!我下班回家啦?第二天我想回到上一天的版本那不是完犊子了吗?no!办法总是有滴,如下: [root@git git]# git reflog # git reflog会记录你在git中的所有命令,那就没问题,可以随意的删除代码了~~~ git小结:1、创建git仓库、git init初始化 2、在git仓库总写代码,通过git add xx 上传至暂存区,在下一步提交git commit “***” 到git仓库!! 3、关于版本回退通过git reset id即可!
|
|