zoukankan      html  css  js  c++  java
  • git使用

    1.安装git

    git:查看是否已经安装

    sudo apt install git :安装

    2.创建版本库

    git init:将一个普通目录变成版本库

    3.将文件添加到版本库

    git add filename :将文件添加到缓存区

    git commit -m "日志" :提交文件到版本库【仓库】

    *** 请告诉我你是谁。        #不知道主人是谁,则需要配置用户名和邮箱
    #注意:用户名和邮箱来自github上的注册

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

    4.时光穿梭机(新旧版本切换)

    git status:查看仓库当前的状态

    git diff filename:查看仓库具体的改动

    版本回退

    在git中,用HEAD表示当前版本,上一个版本是HEAD^,上上个版本是HEAD^^,如果向上找100个版本,则表示为HEAD~100.

    git log: 查看提交历史记录,以便于确定回到哪个历史版本

    git log --pretty=oneline:  只显示commit id 和 版本日志 (一行显示)

    git reflog: 查看历史执行过的git操作,从上往下寻找第一个commit的操作,则是未来的最新的版本

    git reset --hard 版本号【commit id】: 版本回退

    撤销修改

    三种情况:

    1.修改了文件内容,但是还没有添加到暂存区

    #丢弃工作区的修改
    位于分支 master
    尚未暂存以备提交的变更:
    (使用 "git add <文件>..." 更新要提交的内容)
    (使用 "git checkout -- <文件>..." 丢弃工作区的改动)
    ##回到最近一次git commit或git add时的状态

    修改:     text.txt

    2.修改了内容,还添加到了暂存区,但是还没有提交

    a.撤销掉暂存区的修改
    位于分支 master
    要提交的变更:
    (使用 "git reset HEAD <文件>..." 以取消暂存)

    修改:     text.txt
    b.丢弃工作区的修改

    重复 操作 1

    3.直接将修改的内容提交到了版本库

    利用版本回退

    5.远程仓库

    建立本地终端和github的网络连接

    1.创建github账号

    2.生成ssh key【密钥,建立本地和网络之间的连接】cd

    终端输入命令:ssh-keygen  -t   rsa  -C    "github的注册邮箱"

    后面会要求设置仓库密码等(可忽略),一直回车.

    3.添加公钥到github

    获取公钥:cat id_rsa.pub

    复制公钥添加到github: github网站-->个人-->setting-->SSH and GPG keys-->new ssh key

    4.检测是否添加成功

    命令:ssh  -T   git@github.com

    5.添加私钥

    命令:ssh-add id_rsa

    添加公钥失败时: 解决办法网址 https://blog.csdn.net/laner415/article/details/52966890

    1.  ssh-add -D
    2. rm -r ~/.ssh
    3. 再试一次以上命令:ssh-keygen -t   rsa -C   "github的注册邮箱"
    添加密钥 测试 若继续失败,执行下面命令
    4. eval "$(ssh-agent -s)"
    5. ssh-add
    6. 再测试 ssh -T git@github.com

    建立远程仓库

    github网站-->个人页面-->页面右上角的"+"号-->new repository

    创建成功后:

    https 和 git两种连接 ; https推送时需要github用户名和密码

    远程仓库地址: 例: git@github.com:Deaseyy/repository1.git

     

    将本地仓库和远程仓库联系起来

    前提: 首先创建了本地仓库(版本库),进入本地仓库目录:

    1.建立连接:

    命令  git remote add origin  git@github.com:Deaseyy/repository1.git(远程仓库地址)

    命令 git remote -v   : 查看远程仓库(地址) ,查看是否关联好

    2.推送本地master分支并与远程master产生关联:

     命令  git push -u origin master  (第一次推送本地仓库内容到远程仓库,之后推送时去掉-u)

    ps: 推送相当于更新远程仓库的文件, 需要本地仓库已经包含远程仓库的所有最新文件,否则不能更新,需要先pull远程仓库的文件再push.

    总结:

    • 要关联一个远程仓库,使用命令 git remote add origin git@github.com:username/repoName.git

    • 关联成功之后 ,使用命令git push -u origin master第一次推送master分支的内容到远程仓库

    • 以后,每次本地提交之后,只需要使用命令git push origin master推送最新的修改

      【本地修改----> add到暂存区 ---> commit到本地仓库 ---> push到远程仓库】

    从远程仓库克隆

    查找远程仓库地址

    命令 git clone git@github.com:Deaseyy/repository1.git

    #克隆到本地之后,就可以任意修改本地工作区中的文件,修改完成之后,首先将修改add到暂存区,然后将暂存区中的修改提交到本地仓库,最后将本地仓库中的修改推送到远程仓库

    6.分支管理

    git branch 查看当前仓库所有分支

    创建和合并分支

    git branch 查看分支

    git branch dev 创建分支dev

    git branch -d dev  删除分支dev

    git branch -D dev 强制删除分支dev

    git checkout dev 切换到分支dev

    git checkout -b dev  创建并切换到该分支

    git merge dev 合并子分支dev到当前分支

     git merge --no-ff -m "log" dev  合并分支(有历史记录)

    个人理解: 1.本地子分支修改后合并到master主分支 (合并冲突时需先解决冲突)

          2.master主分支再push推送到远程仓库分支 

     

  • 相关阅读:
    Compression algorithm (deflate)
    tcpip数据包编码解析(chunk and gzip)_space of Jialy_百度空间
    What's the difference between the "gzip" and "deflate" HTTP 1.1 encodings?
    gzip压缩算法: gzip 所使用压缩算法的基本原理
    Decompressing a GZip Stream with Zlib
    Frequently Asked Questions about zlib
    how to decompress gzip stream with zlib
    自己动手写web服务器四(web服务器是如何通过压缩数据,web服务器的gzip模块的实现)
    What's the difference between the "gzip" and "deflate" HTTP 1.1 encodings?
    C语言抓http gzip包并解压 失败 C/C++ ChinaUnix.net
  • 原文地址:https://www.cnblogs.com/Deaseyy/p/10859768.html
Copyright © 2011-2022 走看看