资讯专栏INFORMATION COLUMN

关于git stash

Benedict Evans / 975人阅读

摘要:今天我们来研究一个命令。会通过你发送过来的共有密钥和服务器上的共有密钥进行比较,如果两个密钥一致则服务器验证通过。当前的显示红色代表没有添加到暂存区内,也可以理解为是没有提交的文件。同时也可以使用来恢复所有没有放到栈中的未提交的文件。

今天我们来研究一个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仓库,查看文件已经提交,如图所示


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64950.html

相关文章

  • 关于git常用命令

    git常用命令 git常用命令 初始化本地git环境  git init 克隆一份代码到本地仓库   git clone XXX 把远程库的代码更新到工作台   git pull 强制把远程库的代码跟新到当前分支上面   git pull --rebase origin master 把远程库的代码更新到本地库  git fetch 把本地的修改加到stage中 ...

    only_do 评论0 收藏0
  • 关于git常用命令

    git常用命令 git常用命令 初始化本地git环境  git init 克隆一份代码到本地仓库   git clone XXX 把远程库的代码更新到工作台   git pull 强制把远程库的代码跟新到当前分支上面   git pull --rebase origin master 把远程库的代码更新到本地库  git fetch 把本地的修改加到stage中 ...

    lvzishen 评论0 收藏0
  • 关于git常用命令

    git常用命令 git常用命令 初始化本地git环境  git init 克隆一份代码到本地仓库   git clone XXX 把远程库的代码更新到工作台   git pull 强制把远程库的代码跟新到当前分支上面   git pull --rebase origin master 把远程库的代码更新到本地库  git fetch 把本地的修改加到stage中 ...

    2i18ns 评论0 收藏0
  • stash —— 一个极度实用的Git操作

    摘要:今天要介绍的操作就是,毫不夸张地说,每个用的开发人员都一定要会懂怎么使用。好了,今天要介绍的主角就能实现我们的需求。我们来看下这个功能到底是怎么使用的。前几天我被极客时间的教程刷屏。坦白讲,的确是一项必备技能。 今天要介绍的 Git 操作就是 stash,毫不夸张地说,每个用 Git 的开发人员都一定要会懂怎么使用。 在介绍之前,不知道你有没有和我一样的经历:某一天,我正在一个 fea...

    wind5o 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<