zoukankan      html  css  js  c++  java
  • 史上最浅显易懂的Git教程!

    本教程只会让你成为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:Gitingit.exe,然后点击OK。

     

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

     

     

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

     

     

     

     项目已经拉了下来

     

    6.修改后的文件提交

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

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

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

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

     

     

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

     

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

  • 相关阅读:
    windows10环境运用SSH和SwitchySharp自由翱翔
    Windows10 Virtualization Technology虚拟化技术功能
    [转]docker 基本原理及快速入门
    通俗易懂介绍机器学习与深度学习的差别
    对于python setup.py install安装的包如何卸载
    在Ubuntu上安装boost库[转]
    word2vec相关资源
    ubuntu16.04 LTS Server 安装mysql phpmyadmin apache2 php5.6环境
    tmux配置与用法整理
    Oracle学习笔记:LOB大数据字段类型
  • 原文地址:https://www.cnblogs.com/hui520/p/6421815.html
Copyright © 2011-2022 走看看