经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 软件/图像 » Git » 查看文章
git01-基操
来源:cnblogs  作者:林奋斗的成长之路  时间:2021/2/18 15:07:55  对本文有异议

git是个啥???

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

作者:林纳斯.拖瓦兹 .....就是那个写Linux系统的天才~

版本控制系统分类:

集中式:代码集中存储在中央服务器,开发者的客户端只有部分自己的代码,假如中央服务器出问题,会出现数据丢失。传统的版本控制系统:CVS SVN
分布式:每台服务器都拥有所有代码,任意一台服务器崩溃,从其他服务器复制过来就好。

git的部署

先声明自己的名字和邮箱

  1. git config --global user.name "LF"
  2. git config --global user.email "482929763@qq163.com" 

 创建版本库

什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

  1. [root@git ~]# mkdir /git
  2. [root@git ~]# cd /git/

通过git init命令把这个目录变成Git可以管理的仓库:

  1. [root@git git]# git init
  2. 初始化空的 Git 版本库于 /git/.git/

将文件添加到版本库

首先这里再明确一下,所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。

  1. [root@git git]# vim readme.txt     #创建文件,模拟代码
  2. [root@git git]# cat readme.txt     #查看内容
  3. 1

 1、上传到暂存区

  2、提交到版本库

  1. [root@git git]# ls
  2. readme.txt
  3. [root@git git]# git add readme.txt        #将readme.txt上传到暂存区
  4. [root@git git]# git commit -m "txt" readme.txt  #上传readme.txt提交到git版本库,-m“描述” 后边可以接指定名称,也可以不接
  5. [master(根提交) 12a8c22] txt
  6. 1 file changed, 1 insertion(+)
  7. create mode 100644 readme.txt

 版本回退

版本修改

  1. [root@git git]# vim readme.txt #添加2
  2. [root@git git]# cat readme.txt
  3. 1
  4. 2
  5. [root@git git]# git status #查看git仓库的状态
  6. # 位于分支 master
  7. # 尚未暂存以备提交的变更:
  8. # (使用 "git add <file>..." 更新要提交的内容)
  9. # (使用 "git checkout -- <file>..." 丢弃工作区的改动)
  10. #
  11. # 修改: readme.txt
  12. #
  13. 修改尚未加入提交(使用 "git add" 和/或 "git commit -a"
  14. #git status命令可以让我们时刻掌握仓库当前的状态,上面的命令输出告诉我们,readme.txt被修改过了,但还没有准备提交的修改。   

 提交

  1. [root@git git]# git add readme.txt
  2. [root@git git]# git commit -m 'add 2' readme.txt
  3. [master 5095b03] add 2
  4. 1 file changed, 1 insertion(+)  

  我们工作不停的修改不停的提交,就和以前打游戏通关会自动存档一样,随时可以回到以前的关卡当中!进度不会丢失!!!

我们尝试多修改几次,并提交,顺便巩固前边2个命令!

  1. [root@git git]# cat readme.txt
  2. 1
  3. 2
  4. 3
  5. [root@git git]# git add readme.txt
  6. [root@git git]# git commit -m "add 3"
  7. #上述添加3
  8. [root@git git]# vim readme.txt
  9. [root@git git]# cat readme.txt
  10. 1
  11. 2
  12. 3
  13. 4
  14. [root@git git]# git add readme.txt
  15. [root@git git]# git commit -m "add 4"
  16. [master 14340e6] add 4
  17. 1 file changed, 1 insertion(+)
  18. [root@git git]#
  19. #添加4

在实际工作中,我们脑子里怎么可能记得一个几千行的文件每次都改了什么内容,不然要版本控制系统干什么。版本控制系统肯定有某个命令可以告诉我们历史记录,在Git中,我们用git log命令查看:

  1. [root@git git]# git log
  2. commit 14340e64b91877835d77d4e6ce69ab74822f44ef
  3. Author: LF <482929763@qq163.com>
  4. Date: Fri Feb 12 21:12:02 2021 +0800
  5.  
  6. add 4
  7.  
  8. commit 53546712103a56e5e42ede02fd7b62585f35396b
  9. Author: LF <482929763@qq163.com>
  10. Date: Fri Feb 12 21:10:51 2021 +0800
  11.  
  12. add 3
  13.  
  14. commit 5095b03aac0d16b232b7bc756180f3248c2ac44e
  15. Author: LF <482929763@qq163.com>
  16. Date: Fri Feb 12 21:06:46 2021 +0800
  17.  
  18. add 2
  19.  
  20. commit 12a8c2278d7fcb62f5db76807704e0a1eb9c5e04
  21. Author: LF <482929763@qq163.com>
  22. Date: Fri Feb 12 21:00:25 2021 +0800
  23.  
  24. txt
    #上述我们可以看到我们的3次修改,最近的一次add 4,上上次add 3,上上上次add 2;
    如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:

    [root@git git]# git log --pretty=oneline
   14340e64b91877835d77d4e6ce69ab74822f44ef add 4
   53546712103a56e5e42ede02fd7b62585f35396b add 3
   5095b03aac0d16b232b7bc756180f3248c2ac44e add 2
   12a8c2278d7fcb62f5db76807704e0a1eb9c5e04 txt

#回退环节

首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交14340e6...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

我们现在从add 4 回退到 add 3 就可以使用git reset命令:

  1. [root@git git]# git reset --hard HEAD^
  2. HEAD 现在位于 5354671 add 3
  3. [root@git git]# cat readme.txt
  4. 1
  5. 2
  6. 3
  7. #回退成功
  8. [root@git git]# git log #查看当前仓库状态
  9. commit 53546712103a56e5e42ede02fd7b62585f35396b
  10. Author: LF <482929763@qq163.com>
  11. Date: Fri Feb 12 21:10:51 2021 +0800
  12.  
  13. add 3
  14.  
  15. commit 5095b03aac0d16b232b7bc756180f3248c2ac44e
  16. Author: LF <482929763@qq163.com>
  17. Date: Fri Feb 12 21:06:46 2021 +0800
  18.  
  19. add 2
  20.  
  21. commit 12a8c2278d7fcb62f5db76807704e0a1eb9c5e04
  22. Author: LF <482929763@qq163.com>
  23. Date: Fri Feb 12 21:00:25 2021 +0800
  24.  
  25. txt
    #这是你会发现以前add 4 版本不见啦!
    #如果想恢复成上一版本也是有办法滴!
    #办法其实还是有的,只要上面的命令行窗口还没有被关掉,你就可以顺着往上找啊找啊,找到那个add 4的commit id是14340e6...,于是就可以指定回到未来的某个版本:

[root@git git]# git reset --hard 14340e6
HEAD 现在位于 14340e6 add 4
[root@git git]# cat readme.txt
1
2
3
4

#id写个前几位就行了不用写全

#但是还有个隐患!我下班回家啦?第二天我想回到上一天的版本那不是完犊子了吗?no!办法总是有滴,如下:

[root@git git]# git reflog
14340e6 HEAD@{0}: reset: moving to 14340e6
5354671 HEAD@{1}: reset: moving to HEAD^
14340e6 HEAD@{2}: commit: add 4
5354671 HEAD@{3}: commit: add 3
5095b03 HEAD@{4}: commit: add 2
12a8c22 HEAD@{5}: commit (initial): txt

# git reflog会记录你在git中的所有命令,那就没问题,可以随意的删除代码了~~~

git小结:  

1、创建git仓库、git init初始化

2、在git仓库总写代码,通过git add xx 上传至暂存区,在下一步提交git commit “***” 到git仓库!!

3、关于版本回退通过git reset  id即可!

  

原文链接:http://www.cnblogs.com/lin-strive/p/14399283.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号