Git入门

来源:互联网 发布:ppt mac版下载 编辑:程序博客网 时间:2024/06/07 11:10

前准备期

  • http://www.cnblogs.com/GJ-ios/p/5645633.html
  • 廖雪峰的Git教程
  • 使用环境 : windows 10
  • Git客户端下载 : https://git-for-windows.github.io/
  • 在github官网申请一个账号 : https://github.com/
  • 工作区 : 与.git文件夹同级的其他文件夹或者子文件夹。
  • 操作原则 : 所有新添加/删除/修改的文件 必须先添加到暂缓区,然后才能提交到HEAD指向的当前分支中。
  • 单人开发 :只需要一个本地库,不需要与他人共享代码,只负责管理自己代码即可;例如提交代码,删除代码,版本控制等等。
  • 多人开发 : 需要一个共享版本库,共享版本库的形式:(1)本地共享库:文件夹/U盘/硬盘。(2)远程共享库:自己搭建git服务器/ 托管到第三方平台(例如github, oschina)
  • SSH概念 :http://blog.csdn.net/left_la/article/details/41678935在客户端来看,SSH提供了两种级别的安全验证:
    • 第一种级别:(基于密码的安全验证),即账号+密码,但是可能有别的服务器在冒充真正的服务器,无法避免被“中间人”攻击(man-in-the-middle)
    • 第二种级别(基于密钥的安全验证),这里的密钥即包括公钥、私钥。这些都属于密码学的概念,容易混淆。接下来阐述下加密、认证、公钥、私钥的概念和关系。
    • 首先明确加密、认证两个概念:加密是将数据资料加密,使得非法用户即使截获到加密过的资料,也无法获取正确的内容,所以数据加密可以保护数据,它的重点在于数据的安全性。身份认证是用来判断某个身份的真实性,其重点在于用户的真实性。两者的侧重点是不同的。
    • 其次了解公钥和私钥的概念:现代密码体制中加密盒解密采用不同的密钥(公钥和私钥),也就是非对称密钥密码系统,是从前对称加密方式的提高与增强。每个通信方均需两个密钥:公钥和私钥。公钥用来加密/验章用的,私钥用来解密/签章。
      • 公钥和私钥成对出现
      • 公开的密钥叫公钥,只有自己知道的叫私钥
      • 用公钥加密的数据只有对应的私钥可以解密
      • 用私钥加密的数据只有对应的公钥可以解密
      • 如果可以用公钥解密,则必然是对应的私钥加的密
      • 如果可以用私钥解密,则必然是对应的公钥加的密
    • 接下来用电子邮件的方式说明一下原理。收发邮件需实现如下目的:
      • A发送给B的内容必须加密,在邮件的传输过程中不能被别人看到。(加密)
      • 必须保证是A发送的邮件,不是别人冒充我的。(认证)
        要达到发送一个加密邮件的目标,必须发送邮件的双方都有公钥和私钥,且A必须拥有B的公钥,B也必须拥有A的公钥。
        当A->B资料时,A会使用B的公钥加密,这样才能确保只有B能解密查看真实内容,即加密机制。
        验证方面则是使用签/验章的机制,A传资料给B(当然不只是B,所有有A公钥的人都可以)时,会以A的私钥做签章,因为私钥只有A手里有,如此所有收到讯息的人都可以用A的公钥进行验章,便可确认讯息是由 A 发出来的了,即认证机制。

本地仓库(不共享)

  • 初始化一个本地仓库 : 初始化之后就可以使用git进行版本控制。
    • 初始化命令 : git init
  • 配置仓库 : 配置你的用户名、邮箱地址等等
    • 配置名字 : git config [–global] user.name “你的名字”
    • 配置邮箱 : git config [–global] user.email “你的邮箱”
    • 查看配置 : git config -l
  • 基本操作
    • 创建并提交
      • touch Test.java
      • git add .
      • git commit -m “注释”
    • 修改并提交
      • git add .
      • git commit -m “注释”
    • 删除并提交
      • git rm person.h
      • git commit -m “注释”
    • 日志查看
      • git log
      • git reflog
    • 版本回退
      • git reset —hard HEAD 重置到当前版本
      • git reset —hard HEAD^^ 重置到上上个版本
      • git reset ——hard HEAD2 重置到往上2个版本
      • git reset —hard 七位版本号 重置到指定版本…

共享仓库

  • 本地共享仓库 : 本地电脑/U盘等, 在本地面对面操作
    • 搭建本地共享库 : git init –bare
  • 远程共享仓库 : 自己搭建的Git服务器/github托管/oschina托管,可通过网络远程操作(主要介绍利用github托管)
    • 在本地创建SSH Key:ssh-keygen -t rsa -C “youremail@163.com” 这里写图片描述
    • 登陆github,打开设置,“SSH and GPG keys”页面:这里写图片描述
    • 点击 Nwe SSH Key,添加你刚刚生成的公钥内容,标题自定义这里写图片描述需要ssh key 是为了让你有权限提交、修改等。如果你仅仅是想从远程仓库上clone,则不需要ssh keys,就比如你从github上下载别人的代码
    • 在github上创建一个新项目:New repositories 这里写图片描述在创建完之后,会有这样一个界面这里写图片描述目前,在github上的这个Test仓库还是空的,github告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。现在,我们根据github的提示,在本地的Test仓库下运行命令
      • git remote add Test git@github.com:spilledyear/Test.git
    • 把本地库的所有内容推送到远程库上:
      • git push -u Test master
      • 把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样:
      • 从现在起,只要本地作了提交,就可以通过命令:git push origin master
    • SSH警告:当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:
      The authenticity of host ‘github.com (xx.xx.xx.xx)’ can’t be established.
      RSA key fingerprint is xx.xx.xx.xx.xx.
      Are you sure you want to continue connecting (yes/no)?
      这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:
      Warning: Permanently added ‘github.com’ (RSA) to the list of known hosts.
      这个警告只会出现一次,后面的操作就不会有任何警告了。
      如果你实在担心有人冒充GitHub服务器,输入yes前可以对照GitHub的RSA Key的指纹信息是否与SSH连接给出的一致。这里写图片描述
0 0
原创粉丝点击