前言:

今天,闲来没事,我想为大家分享一下git的基本概念,以及git的初级语法,讲的不好,希望大家不要介意哈。

GIT:

什么是git了

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

为什么要使用git:

git是个内容管理系统(CMS),也是版本控制系统,在团队合作开发,公司项目相关业务管理方面起了至关重要的作用,git的出现,不仅提高了组织团队之间协作开发的效率,更提高了公司项目的高效管理,怎么说了,在以前,多个人开发合作的时候,要把大家每天工作的具体内容合并,可不是一件那么容易的事,在这些开发工具没有出现以前,相信大货都是以外部存储的方式,拷贝来拷贝去,从而合并大家的工作,可是,这种方式效率实在是太低下,有时间,空间和区域的限制,git的出现,就解决了团队合作间协同合作因为时间,空间,区域限制等因素带来的不变,大家只需要把自己每天的工作内容,push到共有的远程厂库即可,这样队友就只需要push下来,合并,解决对应的冲突,然后再次push远程即可,方便组内其他同事工作内容的合并。大大提高了开发效率。

当然,现在常用的版本控制有很多,比如常见的github,svn,cvs,subversion...等,他们的出现都是为了解决团队开发,项目管理效率低下的问题。具体使用哪种工具,这里要更具公司业务要求,以及自己的选择了,但是,作为开发者,个人觉得,最好每一种都会使用才最好,下面,我就详细的描述他们之间的差异,方便初学者的选择和学习等

Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持

Git 与 SVN 区别

GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应GIT提供的一些概念和特征。

Git 与 SVN 区别点:

  • 1、GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。

  • 2、GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。

  • 3、GIT分支和SVN的分支不同:分支在SVN中一点不特别,就是版本库中的另外的一个目录。

  • 4、GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。

  • 5、GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

git常用语法命令

在使用git前,需要在自己本地安装git,具体的安装非常的简单,只需要去Git官网下载对应系统的安装包即可,安装过程基本都是下一步,下一步,直到finish。

git官网在这里:https://git-scm.com/,实在不知道咋安装的,知己百度吧。

下面,我就介绍常用的git命令,带领大家,建立为一个自己的git项目,这里是Windows环境下。

1、在Windows上安装Git

安装完成后,还需要最后一步设置,在命令行输入: 
gitconfig–globaluser.name“YourName”gitconfig–globaluser.name“YourName” git config –global user.email “email@example.com”

2、创建版本库

首先,选择一个合适的地方,创建一个空目录:
$ cd /d/appData
$ mkdir gitRepo
$ cd gitRepo
$ pwd
/d/appData/gitRepo
##pwd命令用于显示当前目录
然后,通过git init命令把这个目录变成Git可以管理的仓库:
$ git init
Initialized empty Git repository in /d/appData/gitRepo/.git/

3、把文件添加到版本库

$ git add index.txt
$ git commit -m "add index.txt"
## add 命令把文件提交到缓存区
## commit 把缓存区文件提交到版本库,-m 参数是指定comments
## 可以add多次,一次commit

4、查看版本库状态

$ git status
该命令查看到的结果分为两部分:
一,add到缓存区内等待被commit到版本库的更改。
二,工作区内的还未add到缓存区的更改
  • 1
  • 2
  • 3
  • 4
  • 5

5、查看工作区更改内容

$ git diff index.txt
$ git diff HEAD -- index.txt
$ git diff --cached index.txt
$ git diff 287d9bd -- index.txt## 1、git diff:工作区和缓存区比较
## 2、git diff --cached:缓存区和HEAD比较
## 3、git diff HEAD:工作区和HEAD比较
## 4、git diff commitID:工作区和某一版本的比较

6、查看commit历史记录

$ git log
commit 287d9bd301f8aa18d638021926ae690b6ba35507
Author: rchm <rchm8519@sina.com>
Date:   Sat Apr 25 16:50:58 2015 +08005 查看工作区更改内容commit 53468841ca9e73786567772efbbaafdfe6a30482
Author: rchm <rchm8519@sina.com>
Date:   Sat Apr 25 16:22:49 2015 +0800add index.txtcommit 17a85a95ef019058f04d320a157ef5a218d069f2
Author: rchm <rchm8519@sina.com>
Date:   Sat Apr 25 15:58:17 2015 +0800add of files
## 其中 287d9b... 一串字符 叫做 commit_id 版本号
## 如果信息太多,想要显示简洁一写,可以试试加上--pretty=oneline参数:
$ git log --pretty=oneline
287d9bd301f8aa18d638021926ae690b6ba35507 5 查看工作区更改内容
53468841ca9e73786567772efbbaafdfe6a30482 add index.txt
17a85a95ef019058f04d320a157ef5a218d069f2 add of files
  • 7、版本回退
$ git reset --hard HEAD^
## git中用HEAD表示当前版本,HEAD^表示上一版本,HEAD^^表示上一版本HEAD~100表示上100个版本
## 或者直接指定版本号(不用全输,只许前面几位即可)$ git reset --hard 534688
## 如果要单独回退某一个文件,可在最后加上文件名称,但不能加 --hard参数
$ git reset HEAD^ index.txt

8、撤销回退

当使用reset命令回退到以前的版本后,发现回退多了,或者想撤销回退操作
那只能使用指定版本号的方式了
可是git的版本号这么变态,谁能记得住?好吧,git帮你记!
查看版本号的命令:
$ git reflog
6163ac9 HEAD@{0}: reset: moving to 6163ac
287d9bd HEAD@{1}: reset: moving to HEAD~2
6163ac9 HEAD@{2}: commit: ##
186103f HEAD@{3}: commit: 7 版本回退”
287d9bd HEAD@{4}: commit: 5 查看工作区更改内容
5346884 HEAD@{5}: commit: add index.txt

9、废弃工作区修改

## 单个文件废弃
$ git checkout -- index.txt
## 整个工程废弃
$ git checkout -f
## 这个命令会把你工作区中的修改回退到最后一次add命令之前的状态
## 即如果缓存区有内容,则回退到和缓存区一直
## 如果缓存区为空,则回退到和版本库一致
  • 10、把缓存区内容撤回工作区
$ git reset HEAD index.txt
## 该命令的执行不会使工作区中新的更改丢失

11、文件删除与找回

$ git rm index.txt
## 该命令执行后,工作区内文件直接删除,操作指令放到缓存区
## 若执行commit,则版本库中文件被删除
## 若想取消删除,则需要先执行reset HEAD命令,再执行checkout命令找回
## 若执行commit,从版本库删除后,还想找回被删文件,这时HEAD版本中已经没了
则需要先执行reset HEAD^ 命令,从上一个版本号回退,再执行checkout命令找回

12、Git远程仓库

GitHub是一个提供Git仓库托管服务的网站
参考文档:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001374385852170d9c7adf13c30429b9660d0eb689dd43a000
一、注册GitHub网站
二、创建SSH Key$ ssh-keygen -t rsa -C "youremail@example.com"##命令执行成功后,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,##这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
三、设置SSH Key登陆GitHub,打开“Account settings”,“SSH Keys”页面:然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容;

13、添加本地仓库远程

在GitHub上创建一个新的仓库后,可以把本地仓库的内容推送到GitHub仓库
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

14、克隆远程仓库到本地

首先你要知道一个远程仓库的地址,然后
$ git clone git@server-name:path/repo-name.git
##Git支持多种协议,默认的git://使用ssh,也可以使用https等其他协议,
##但通过ssh支持的原生git协议速度最快

这里只是Git的基本入门,只介绍了一下git基本命令,想要学习的更加深入,小编就推荐几篇好的博客地址吧:

Git 完整命令手册地址:http://git-scm.com/docs

PDF 版命令手册:github-git-cheat-sheet.pdf

菜鸟教程:http://www.runoob.com/git/git-tutorial.html点击打开链接

我的git:点击打开链接

git官网帮助文档:点击打开链接

揭开git的神秘面纱相关推荐

  1. 了解黑客的关键工具---揭开Shellcode的神秘面纱

    2019独角兽企业重金招聘Python工程师标准>>> ref:  http://zhaisj.blog.51cto.com/219066/61428/ 了解黑客的关键工具---揭开 ...

  2. [转]揭开正则表达式的神秘面纱

    揭开正则表达式的神秘面纱 关闭高亮 [原创文章,转载请保留或注明出处:http://www.regexlab.com/zh/regref.htm] 引言 正则表达式(regular expressio ...

  3. 揭开PC-Lint9的神秘面纱

    前言 今天,又定位了一个令人懊恼的C++内存使用异常问题,最终结果,竟然是减少接口类的方法后,为了避免编译错误,顺手添加的强制类型转换导致的. 对于这样的问题,我们碰到很多很多次了.没有这样的问题,我 ...

  4. 未来已来?揭开量子计算机的神秘面纱

    从第一台现代计算机ENIAC的诞生到个人PC时代的降临,从互联网概念的提出到移动互联的疾跑,在这个信息年代里,变革正以前所未有的速度改变着我们熟悉的世界.熟悉的生活. 作为个人,我们早已习惯于智能计算 ...

  5. ASP.NET 运行时详解 揭开请求过程神秘面纱

    对于ASP.NET开发,排在前五的话题离不开请求生命周期.像什么Cache.身份认证.Role管理.Routing映射,微软到底在请求过程中干了哪些隐秘的事,现在是时候揭晓了.抛开乌云见晴天,接下来就 ...

  6. linux操作系统说课稿,信息技术《揭开LINUX的神秘面纱》教案范文

    信息技术<揭开LINUX的神秘面纱>教案范文 教学目标: 1.会启动LINUX系统: 2.会关闭LINUX系统: 3.LINUX基本界面的认识. 教学重点: 1.会启动LINUX系统: 2 ...

  7. 冰河浅析 - 揭开木马的神秘面纱(下)

    冰河浅析   -   揭开木马的神秘面纱(下)     作者:·   shotgun·yesky 四.破解篇(魔高一尺.道高一丈)         本文主要是探讨木马的基本原理,   木马的破解并非是 ...

  8. 揭开木马的神秘面纱 2

    揭开木马的神秘面纱zz 2 离冰河二的问世已经快一年了,大家对于木马这种远程控制软件也有了一定的认 识,比如:他会改注册表,他会监听端口等等,和一年前几乎没有人懂得木马是什么东   西相比,这是一个质 ...

  9. 【翻译】揭开HTML5的神秘面纱

    写在前面的话: 这篇文章摘自Mozilla官网,主要针对HTML5和本地应用发表了一些.没有设计到技术,所以基本是逐字翻译,但愿我蹩脚的英语水平能把大师的 Chris Heilmann的思想整理明白. ...

最新文章

  1. Ubuntu 12.04嵌入式交叉编译环境arm-linux-gcc搭建过程图解
  2. 基于Netty的http服务器
  3. 使用 /proc 文件系统
  4. geohash redis mysql_Redis geohash 地理位置存储
  5. 深度 | EB级规模大数据平台核心技术揭秘(上)
  6. Python正则表达式去除符号
  7. Kafka配置broker映射错误报错Discovered coordinator xxx rack: null
  8. 管理储存组和邮箱数据库
  9. jquery 手型 鼠标穿过时_css各种手型集合(css禁止手型)-Fun言
  10. 微信小程序授权订阅消息判断用户取消或允许
  11. 贪婪算法————背包问题
  12. 点到点轨迹规划【1】——梯形速度曲线规划
  13. android 开源库osmdroid绘制点线面(比例尺,缩小放大,导航图标等)
  14. PTCms小说系统自动在线采集修正版+手机
  15. Apache commons 实用方法整理(持续更新中)
  16. hello和dead定时器_BBS,Dead OS和门游戏
  17. Eclipse注册码
  18. Apriori算法简介---关联规则的频繁项集算法
  19. java gdal_2、JAVA集成GDAL-JAVA开发环境整合GDAL
  20. Unity2018 Asset store下载目录 保存路径

热门文章

  1. 公众号下载资源汇总(一)
  2. updating homebrew...一直在等 brew install xxx卡在Updating Homebrew
  3. ARM三个寄存器 : 堆栈指针SP(R13)、连接寄存器LR(R14)和程序计数器PC(R15)
  4. 使用carbon_东华大学《Carbon》多孔碳纳米纤维复合膜,优异电磁波吸收性能!
  5. 开售破发、二手市场跳水 iPhone SE3 “割韭菜”功力大减
  6. 京东成全国首批支持第三方商家接入数字人民币的企业
  7. 京东集团副总裁王楠:数智化是打造国际消费中心城市的必由之路
  8. 英国反垄断监管机构将对音乐流媒体市场展开调查
  9. 爱奇艺纪录片《棒!少年》《从长安到罗马》入选广电总局“2020年优秀国产纪录片集锦”...
  10. 再见2G网络!中国联通开始全面退网