设为首页 收藏本站
查看: 841|回复: 0

[经验分享] 史上最浅显易懂的Git教程!

[复制链接]

尚未签到

发表于 2018-1-13 18:26:06 | 显示全部楼层 |阅读模式
  本教程只会让你成为Git用户,不会让你成为Git专家。很多Git命令只有那些专家才明白(事实上我也不明白,因为我不是Git专家),但我保证 这些命令可能你一辈子都不会用到。既然Git是一个工具,就没必要把时间浪费在那些“高级”但几乎永远不会用到的命令上。一旦你真的非用不可了,到时候再自行Google或者请教专家也未迟。

Git是什么?
  Git是目前世界上最先进的分布式版本控制系统(没有之一)。
  Git有什么特点?简单来说就是:高端大气上档次!

Git的诞生
  很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。
  Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各
  地为Linux编写代码,那Linux的代码是如何管理的呢?
  事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由
  Linus本人通过手工方式合并代码!
  你也许会想,为什么Linus不把Linux代码放到版本控制系统⾥里呢?不是有CVS、SVN这些免
  费的版本控制系统吗?因为Linus坚定地反对 CVS和SVN,这些集中式的版本控制系统不但
  速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但
  那是付费的,和 Linux的开源精神不符。
  不过,到了2002年,Linux系统已经发展了⼗十年了,代码库之⼤大让Linus很难继续通过⼿手⼯工⽅方
  式管理了,社区的弟兄们也对这种⽅方式表达了强烈 不满,于是Linus选择了⼀一个商业的版本
  控制系统BitKeeper,BitKeeper的东家BitMover公司出于⼈人道主义精神,授权Linux 社区免
  费使⽤用这个版本控制系统。
  安定团结的⼤大好局⾯面在2005年就被打破了,原因是Linux社区⽜牛⼈人聚集,不免沾染了⼀一些梁
  ⼭山好汉的江湖习⽓气。开发Samba的Andrew试图 破解BitKeeper的协议(这么干的其实也
  不只他⼀一个),被BitMover公司发现了(监控⼯工作做得不错!),于是BitMover公司怒
  了,要收 回Linux社区的免费使⽤用权。
  Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情
  况是这样的:
  Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux
  系统的源码已经由Git管理了!牛是怎么定义的呢?大家可以体会一下。
  Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源
  项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等
  等。
  历史就是这么偶然,如果不是当年BitMover公司威胁Linux社区,可能现在我们就没有免费
  而超级好用的Git了。
  github是一个网站,给用户提供git服务。这样你就不用自己部署git系统,直接用注册个账号,用他们提供的git服务就可以。
  第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下
  有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接 跳到下一步。如果没有,打
  开Shell(Windows下打开Git Bash),创建SSH Key:
  

ssh-keygen -t rsa -C "youremail@example.com"  

  

  第2步:登陆GitHub,打开“Account settings”,“SSH Keys”⻚页⾯面:
  然后,点“Add SSH Key”,填上任意Title,在Key⽂文本框⾥里粘贴id_rsa.pub⽂文件的内容:
  为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而
  不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只
  有你自己才能推送。
  当然,GitHub允许你添加多个Key。假定你有若干电脑,你⼀一会⼉儿在公司提交,一会儿在
  家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送
  了。
  最后友情提示,在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能
  改)。所以,不要把敏感信息放进去。
  如果你不想让别人看到Git库,有两个办法,一个是交点保护费,让GitHub把公开的仓库变
  成私有的,这样别人就看不见了(不可读更不可写)。另 一个办法是自己动手,搭一个Git
  服务器,因为是你自己的Git服务器,所以别人也是看不见的。
  Windows下要使用很多Linux/Unix的工具时,需要Cygwin这样的模拟环境,Git也⼀一样。
  Cygwin的安装和配置都比较复杂, 就不建议你折腾了。不过,有高人已经把模拟环境和
  Git都打包好了,名叫msysgit,只需要下载一个单独的exe安装程序,其他什么也不用装,
  绝对好 用。
  msysgit是Windows版的Git,从http://msysgit.github.io/下载,然后按默认选项安装即
  可。
  安装完成后,在开始菜单⾥里找到“Git”->“Git Bash”,蹦出⼀一个类似命令⾏行窗⼝口的东
  ⻄西,就说明Git安装成功!
  安装完成后,还需要最后一步设置,在命令行输入:
  

git config --global user.name "Your Name"  
git config --global user.email "email@example.com"
  

  

  因为Git是分布式版本控制系统,所以,每个机器都必须⾃自报家⻔门:你的名字和Email地址。
  你也许会担⼼心,如果有⼈人故意冒充别⼈人怎么办?这个不必担⼼心,⾸首先我们相信⼤大家都是善良
  ⽆无知的群众,其次,真的有冒充的也是有办法可查的。
  注意git config命令的--global参数,⽤用了这个参数,表⽰示你这台机器上所有的Git仓库都会
  使⽤用这个配置,当然也可以对某个仓库指定不同的⽤用户名和Email地址。
  用命令git clone克隆⼀一个本地库:
  

git clone https://github.com/Ocean-Openstack/01-openstack-homework.git  

  

  创建自己文件夹
  

cd Day4  

  
mkdir lixh
  

  
cd lixh
  

  

  
touch zuoye.py
  

  

  第⼆二步,通过git init命令把这个⺫⽬目录变成Git可以管理的仓库:(还在在自己目录下)
  

git init  

  

  瞬间Git就把仓库建好了,⽽而且告诉你是⼀一个空的仓库(empty Git repository),细⼼心的
  读者可以发现当前⺫⽬目录下多了⼀一个.git的⺫⽬目录,这个⺫⽬目录是Git来跟踪管理版本库的,没事千
  万不要⼿手动修改这个⺫⽬目录⾥里⾯面 的⽂文件,不然改乱了,就把Git仓库给破坏了。
  第一步,用命令 git add 告诉Git,把⽂文件添加到仓库:
  

git add .  

  

  执行上⾯面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明
  添加成功。
  第二步,用命令 git commit 告诉Git,把⽂文件提交到仓库:
  

git commit -m "first commit"  

  

  简单解释一下 git commit 命令, -m 后面输入的是本次提交的说明,可以输入任意内容,当然
  最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
  把本地master分支的最新修改推送至GitHub
  

git push -u origin master  

  删除文件
  rm -rf 2.txt
  git add .
  git commit -m "del file"
  git push -u origin master

第二次再提交作业
  还是最后三步:
  1.还是在自己的家目录
  

cd lixh  

  
touch zuoye2.py  #模拟作业文件
  

  

  2.用命令 git add 告诉Git,把⽂文件添加到仓库:
  

git add .  

  

  执行上⾯面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明
  添加成功。
  3.用命令 git commit 告诉Git,把⽂文件提交到仓库:
  

git commit -m "first commit"  

  

  把本地master分支的最新修改推送至GitHub
  

git push -u origin master  

  当别人在别人自己的目录提交了文件的时候,你本地目录却没有改变,或者也就是其他人在自己的目录提交了作业,当你比其他人交的晚或者最后一天发现写错想修改怎么办?
  举个栗子:
  张三昨天晚上交了一个作业,GitHub上是这样的:

  而你本地却没有:

  你会发现按照第二次交作业步骤提交会报错:

  这是为啥呢?
  这是因为远程仓库(github)和你本地结构不一样。(这不废话吗?我TM也知道啊!)
  怎么解决呢?
  把远程仓库和本地结构合并一下(把远程服务器github上面的文件拉下来)
  官方是这么说的:取回远程主机某个分支的更新,再与本地的指定分支合并
  

git pull origin master  

  

  执行过程中呢会出现类似于一个vim的界面,跟vim一样。直接输入:q退出即可
  再执行 上面那三条命令(第二次交作业) 即可
  总结:也就是下次交作业(提交代码的时候)先git pull一下,把代码clone下来,再提交

pycharm的github的使用

1.file---default settings


2.搜索git (File->Settings->Version Control->Github)


3.选择Git安装路径

选择git,输入你git.exe的安装位置路径,下面是我的git.exe的位置:D:\Git\bin\git.exe,然后点击OK。


4.选择github,在旁边输入你github的用户名和密码,可以点击”test”测试一下,如果出现:Connection successful,则代表连接成功了。




5.由于咱们已经有了项目,直接拉到本地修改即可



  项目已经拉了下来


6.修改后的文件提交
  比如我在lixh下修改test2文件(蓝色代表修改的部分,绿色代表新增部分)


7.对修改后的文件或目录点击右键:Git—>Add,先把文件放入暂存区


8.对修改后的文件或目录点击右键:Git—>Commit File,把刚才add放在暂缓区的文件提交。


9.填写提交信息,和git commit -m "first commit"这条命令中的“first commit”是一个意思,就是本次提交的说明。然后提交和推送,选择commit and push


  提交成功。可以去github上查看有没有提交成功

  为了避免commit的时候出现问题,上传之前还是先要pull一下

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-434765-1-1.html 上篇帖子: 将git版本号编译进程序 下篇帖子: 如何将本地项目提交到git服务器中
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表