最全面git使用总结笔记

来源:互联网 发布:js如何获取style属性 编辑:程序博客网 时间:2024/05/19 05:30

使用git有一段时间了,一直没时间做笔记,最近专门抽出时间来做个总结。不定期更新。

定义:git是一个版本控制工具。

一:git概念



  • 1、集中式:版本库是集中存放在中央服务器中,要先从中央服务器获取最新版本,然后开始修改,完成后推送给中央服务器。

集中式缺点:必须联网才可以工作,局域网大文件速度快,但是在互联网中上传大文件就会影响效率。
  • 2、分布式:没有中央服务器,每台电脑都是一个完整的版本库,工作时不需要联网,同时修改某一个文件的时候只需要把各自的修改推送给对方即可。
    分布式优点:安全性高,因为每一个人都有完整的版本库,即使有某一台电脑坏掉也不会影响,集中式版本控制系统中央服务器出问题,所有人都无法工作。
  • 二:git用法



    1. Repository:

    版本库/仓库,简单理解为目录,目录所有的文件都可以被git管理起来,每个文件的修改删除都可以跟踪它的历史记录,以备还原。

    commit 可以理解为快照,每一次commit都保存了快照,使用log来查看

    • git提交命令:
      • 初始化仓库:git init
      • 添加文件:git add .
      • 提交文件:git commit -m “修改信息”
    • git常用命令:
      • 查看仓库状态:git status
      • 查看修改内容:git diff
      • 查看提交日志:git log
      • 把xx文件在工作区的修改全部撤销:git checkout –xx.xx
      • 删除某个文件:git rm file 删除的是工作区和暂存区的文件
  • 版本回退:

    • head指向就是当前版本
    • 根据次数回退版本:git reset –head^100 ^100表示往上回退到第100个版本
    • 根据提交id回退:git reset –head commit_id
    • 穿梭版本之前使用git log查看提交历史,以确定要退到哪一个版本
    • 如果想返回重来用git reflog 查看历史,以确定要回到未来的哪个版本
  • 工作区/暂存区:

    • 电脑中操作项目目录就是工作区
    • 工作区中隐藏目录.git 就是git版本库
    • git版本库中存储了很多东西,最重要的叫做stage(或者叫index)的暂存区,git为我们自动创建了第一个分支master,以及指向master的第一个指针head。

    image

    • 当你改乱了工作区的某个文件内容,想直接丢弃工作区的修改时,用git checkout – file
    • 当你不仅仅改乱了工作区的某个文件内容,还添加到了暂存区时,想要丢弃修改,分两步,第一步:git rest head file 再进行第一步
    • 当你提交了不合适的修改到版本库且没有推送到远程库时,可以通过版本回退git reset –head^1
  • 远程仓库/github:
    • 创建ssh key:ssh-keygen -t rsa -C “youremail@example.com”
    • 成功后生成两个文件:私钥 id_rsa、公钥 id_rsa.pub
    • 登陆github 添加sshkeys 拷贝id_rsa.pub的内容添加进去
    • 连接远程仓库:git remote add origin git@github.com:github仓库地址
    • 推送到远程库:git push -u origin master
    • 关联远程库:git remote add origin git@server-name:path/repo-name.git
    • 从远程克隆到本地库:git clone git@github.com:github仓库地址

      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连接给出的一致。

  • 原创粉丝点击