今天我们来研究一个git 命令:'git stash'。(下面的内容是我参考资料然后根据自己的理解写的,如果有错误的地方,希望多多指教改正,共同进步,不胜感激!)
一,git环境的搭建

1,下载git安装。
2,然后建一个文件夹 gitest。
3,进入gitest文件夹,右键 'Git Bash' 然后弹出git命令行窗口,如图所示:

图片描述

二,git 权限设置

 1)git 加密基于密匙--在本地创建一对密钥(公有密钥:id_rsa.pub、私有密钥:id_rsa),把共有密钥放在需要访问的服务器上,如粘贴id_rsa.pub(id_rsa.pub文件)的字符串内容至你的github账户中的SSH Keys中,这样就建立了本地、远程认证关系。当向服务器发送请求时,如git push origin master,推送主分支到远程仓库。会通过你发送过来的共有密钥和服务器上的共有密钥进行比较,如果两个密钥一致则服务器验证通过。
 如果没有权限 如下图所示:

图片描述

2)如何设置共有密匙
  1,首先生成共有密匙 方法如图所示:

图片描述
图片描述

  2),拷贝共有密匙的字符串内容到你的github上面,具体位置  
   -登录github 'https://github.com/MichaelDuanH' 
   -点击图像 在下拉框中 点击setting,如下图所示

图片描述

    3),在左边的菜单中 'Personal settings' 选择菜单 SSH and GPG keys,点击 New SSH key,任意起一个名字,把共有密匙贴进去,如下图所示:

图片描述
图片描述

共有密匙设置成功,如下图所示:

图片描述
三,测试更改提交项目

 在开始之前 首先来了解一下什么是暂缓区?
 暂存区(stage, index),暂存区根本不是一个区(从底层来看),暂存区只是一个  index文件,用来记录仓库里的文件和工作区里的文件这两者之间的对应关系(所谓的“跟踪”).
文件.git/index 实际上就是一个包含文件索引的目录树,像是一个虚拟的工作区。在这个虚拟工作区的目录树中,记录了文件名、文件的状态信息(时间戳、文件长度等),文件的 内容并不存储其中,而是保存在 Git 对象库(.git/objects)中,文件索引建立了文件和对象库中对象实体之间的mapping。

 1,下面这是一个前端的静态的网页,目录结构如下图所示

图片描述

      -安装npm,参考:  http://jingyan.baidu.com/article/a17d528506d7f58098c8f2b0.html
      -安装 http-server npm install -g http-server 
      -启动http-server 如下图所示:
      -启动项目 http://127.0.0.1:8080/

项目启动如下所示
图片描述

-更改index.html页面,将 ‘梦禅’更名为 ‘men chan’

图片描述

 突然发现我不想改这个index文件了,我想改package.json文件,然后我又不想删掉index里面的内容,这个时候 git stash 就开始起作用了
  git stash: 备份当前的工作区的内容(index修改的内容),将当前的工作区内容保存到Git栈中。  
 首先确认index文件没有提交 git status

图片描述

 这个时候我不想改index.html的内容,等改完package.json文件之后再改动index.html,但是又不想删除index.html里面的已经改动的内容,这个时候 git stash就可以起到作用。
 git stash

图片描述

 改动package.json 加了一个lists对象,如图所示

图片描述
图片描述

 添加json文件到暂存区并且提交

图片描述

 git push 提交成功

图片描述

package.json文件提交之后,我现在想继续处理我的index文件,并且提交
git stash list 查看我把哪些没有提交的文件push到git栈中,如图所示

图片描述

git stash apply stash@{#} 可以将你指定版本号为stash@{#}的工作内容取出来,继续编缉之前没有提交的文件。当前的index.html显示红色 代表没有添加到暂存区内,也可以理解为是没有提交的文件。同时也可以使用 git stash pop来恢复所有没有放到git栈中的未提交的文件。

注:('git stash clear'将栈清空。)
图片描述

git stash pop 全部恢复

图片描述

添加提交文件如图所示

图片描述

代码提交成功如图所示

图片描述

进入github仓库,查看文件已经提交,如图所示

图片描述
图片描述


MichaelDuan
1.8k 声望39 粉丝