git学习(九) idea git stash操作】的更多相关文章

在前面说过,git stash 命令的作用就是将目前还不想提交的但是已经修改的内容进行保存至堆栈中,后续可以在某个分支上恢复出堆栈中的内容:git stash 作用的范围包括工作区和暂存区中的内容,没有提交的内容都会保存至堆栈中:例如突然线上出现 bug,我们需要先切换到 master 分支,但当前分支的代码没有提交,直接切换分支,会将当前分支的新增的代码也会增加到 master 分支,而代码又不能此时 commit ,于是这时候就可以使用 git stash : git stash 代码暂存…
PS:本文转载于(http://blog.jobbole.com/50603/),本文由 伯乐在线 - 吴鹏煜 翻译. 英文出处:(http://sixrevisions.com/web-development/git-tips/) 当我刚刚开始使用Git的版本控制时,我根本不确定我付出那么多时间是不是会得到回报.Branch.Stage.Stash,这些Git名词对我来说都非常陌生. 而今天的我已不能想象生活没有Git会变成什么样.Git不仅提供了我非常需要的版本控制功能,还让我变成一个更优秀…
前面博客 Git学习系列之Git基本操作推送项目(图文详解) 当然,如果多人协作,或者多个客户端进行修改,那么我们还要拉取(Pull ... )别人推送到在线仓库的内容下来. 大神们是不推荐使用 pull 命令进行拉取的, 因为封装了细节(git pull == git fetch + git merge). 对于这群更喜欢用命令行的神们来说, 一切在掌控之中是一种强迫症!!!(开个玩笑, 其实项目成员复杂,约定不好以后,pull 确实会有很多问题,会坑人.) 常规使用,我们执行 git pul…
前面博客 Git学习系列之Git基本操作克隆项目(图文详解) 然后可以 cd 切换到 LispGentleIntro 目录, 新增或者修改某些文件.这里只是模拟一下操作, 实际情况可能是 使用 Eclipse 导入项目(不要拷贝,Copy...)进行一些编辑, 然后将当前目录下的所有有变动的文件告诉索引库,接着提交到本地仓库. F:\GIT_ALL>cd LispGentleIntro F:\GIT_ALL\LispGentleIntro>echo some content >>…
前面博客 Git学习系列之Git基本操作提交项目(图文详解) 如果完成到一定程度,那么可以推送到远端在线仓库. 推送之前,请确保你已经设置了全局的 user.name 和 user.email, 如果没有设置,或者不想使用全局的信息,可以在当前项目下设置: F:\GIT_ALL\LispGentleIntro>git config user.name "renfufei" F:\GIT_ALL\LispGentleIntro>git config user.email &q…
不多说,直接上干货 前面,谈及了 Git学习系列之Git 的优势有哪些? 缺点: (1)资料少(起码中文资料很少). (2)学习周期相对而言比较长. (3)不符合常规思维. (4)代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息. 欢迎大家,加入我的微信公众号:大数据躺过的坑     免费给分享       同时,大家可以关注我的个人博客:    http://www.cnblogs.com/zlslch/   和     http://www.cnblogs.com/l…
通过几天的学习,熟悉了 git 的一些常用命令,要用熟练和操作更复杂的功能还必须继续学习.不过 git 作为工具,它是用来提高我们的工作效率的工具,系统的学习之后可以暂且放放,等到以后实际项目中用到了不会的东西再来问专家或通过搜索引擎查询解决办法. 这篇文章仅供自己以后翻阅加深记忆,要系统的学习 git 教程(中文版),请移步到 liaoxuefeng.com 学习 git 教程部分. 我使用的是 windows 系统,所以使用 Git Bash 输入命令.首先,全部命令,再实例结合命令: 一.…
取得项目的Git仓库 有两种方式取得Git项目仓库.第一种是在现存的目录下,通过导入所有文件来创建新的Git仓库.第二种是从已有的Git仓库克隆出一个新的镜像仓库. 在工作目录中初始化新仓库  要对现有的某个项目开始用Git管理,只需到此项目所在的目录,执行: git init 初始化后,在当前目录下会出现一个名为.git的目录,所有Git需要的数据和资源都存在这个目录中. 如果当前目录下有几个文件想要纳入版本控制,需要先用git add命令告诉Git开始对这些文件进行跟踪,然后提交: git…
本系列文章部分原理和命令相关内容是从 https://git-scm.com/book/zh/v2 摘录,软件实际使用是总结自己的实践经验成文. 1. 关于版本控制 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 本地版本控制系统 许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别. 这么做唯一的好处就是简单,但是特别容易犯错. 有时候会混淆所在的工作目录,一不小心会写错文件或者覆盖意想外的文件. 为了解决这个问题,人们很久以前就…
GIT学习 git工作区.暂存区.本地库.远程库 工作区:实际上我们工作的地方,进行写代码或者文件的地方. 暂存区:我们执行了git add 操作之后,就会被提交到暂存区. 本地库:其实最后我们需要执行这一步操作,git commit 到本地库中,才表示完结了. 但是大家经常看到还有push操作,不是应该还有远程库吗?其实在git的理念中,分布式的git其实本来是不需要这个远程库的,git的协同只需要多个用户之间协同其实就是可以的,但是如果有一个稳定的远程库的话,会让我们的协同起来更快速,并且更…
本文出自   http://blog.csdn.net/shuangde800 --------------------------------------------------------------------------------- 本文内容: 初始化一个新的代码仓库,做一些适当配置: 开始或停止跟踪某些文件: 暂存或提交某些更新. 让 Git 忽略某些文件,或是名称符合特定模式的文件: 既快且容易地撤消犯下的小错误: 浏览项目的更新历史,查看某两次更新之间的差异: 如何从远程仓库拉数…
1.背景        git基础打算分两部分来说,一部分是对于本地项目的管理,第二部分是对于远程代码仓库的操作. git运行本地项目管理包含对于相关文件的追踪,暂存区的比較分析,提交,撤销等功能. 2.本地项目管理        首先mkdir一个目录,叫做GitTestFile,然后运行以下代码.创建git的管理配置 git init     接着增加例如以下代码,git add . ,把项目增加跟踪队列 git add . 能够用git status查看状态    增加readme文件,v…
1.背景                最早用github的时候,我傻傻的问舍友大神,git里面的branch是干什么的,他用了非常直白的解释,我至今还记得."branch就是你能够自己建立一个分支,随便乱搞而不影响整个项目".git分支应该是git最nb的特色吧,分支的建立和合并都十分方便.               大体的原理是这种(图借用progit),比方说我们有一个master,另一个分支是testing,git用head指针标记哪个分支正在被运行操作. 2.分支管理  …
在开始Git之旅之前,我们需要设置一下Git的配置变量. 1.告诉Git当前用户的姓名和邮件地址,配置用户名和邮件地址将在版本库提交时用到. 例子: -------------------------------------------------------------- git config --global user.name "feifei" git config --global user.email feifei@gmail.com --------------------…
回顾之前学过的命令: git init // 初始化一个项目 git add // 将文件交给工作区 git commit // 提交修改 查看提交日志: git log // 查看提交日志 git log --stat // 每次提交文件的变更统计 可进行空的提交,也就是不提交任何文件的修改: git commit --allow-empty 比较差异: git diff // 查看修改后的文件于版本库中文件的差异 修改不能直接提交么? 对于已经commit到版本库中的文件,如果再修改的话,不…
查看版本 git --version # 查看git的版本 设置或者查看用户名和邮箱 git config --global user.name "tuhooo" // 如果后面没有用户名就是查看, 有的话就是设置 git config --global user.email tuhooo@.com // 如果后面没有邮箱就是查看, 有的话就是设置 初始化一个项目 mkdir you_project_dir // 新建一个目录,然后进去 git init // 初始化 git init…
前言 现在主流IDE里,都集成git了. https://git-scm.com/docs 史上最浅显易懂的Git教程! 为什么要编写这个教程?因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎地介绍Git的某几个命令,还有直接从Git手册粘贴帮助文档的,总之,初学者很难找到一个由浅入深,学完后能立刻上手的Git教程. 既然号称史上最浅显易懂的Git教程,那这个教程有什么让你怦然心动…
不多说,直接上干货! 史上最浅显易懂的Git教程! 为什么要编写这个教程?因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎地介绍Git的某几个命令,还有直接从Git手册粘贴帮助文档的,总之,初学者很难找到一个由浅入深,学完后能立刻上手的Git教程. 既然号称史上最浅显易懂的Git教程,那这个教程有什么让你怦然心动的特点呢? 首先,本教程绝对面向初学者,没有接触过版本控制概念的读者也…
测试如下: 先将远程的代码修改,之后更新: 之后将工作区修改的代码(这里修改的代码跟远程修改的位置一样)提交到本地,之后拉取远程的代码,会发现有冲突: Accept Yours 就是直接选取本地的代码,覆盖掉远程仓库的 Accept Theirs 是直接选取远程仓库的,覆盖掉自己本地的 选择Merge,自己手动行进选择.修改,之后会弹出类似下面这个框: 这里左边部分本地仓库的代码,右边部分是远程仓库的代码,中间的result就是修改之后的结果.左下角的Accept Left 和Accept Ri…
一.Git与其他版本控制系统的差别 Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异.这类系统每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容.如下图,其他系统在每个版本中记录着各个文件的具体差异: Git 并不保存这些前后变化的差异数据.实际上,Git 更像是把变化的文件作快照后,记录在一个微型的文件系统中.每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引.为提高性能,若文件没有变化,Git 不会再次保存…
提示出错信息:fatal: remote origin already exists. 解决办法如下: 1.先输入$ git remote rm origin 2.再输入$ git remote add origin git@github.com:djqiang/gitdemo.git 就不会报错了! 3.如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section 'remote.origin'. 我们需要修改…
git log -l -pretty=raw // 查看日志 -l是干啥的 git log -pretty=raw // git cat-file -t 哈希值 // 查看id的类型 不知道为啥这里我不一样:即使用git log -l --pretty=raw也只是出现commit的,但是git cat-file -p 哈希值则会出现tree和parent. root@tuhooo:~/workspace/demo # git log commit ac31089960196a531c277dc…
不同参数下git diff输出并不相同,理解了工作区,暂存区和版本库的关系之后就很容易理解diff了. 工作区.暂存区和版本库的目录树浏览 清除工作区中未被git管理的文件 git clean -fd 查看暂存区和HEAD中的目录树 git ls-tree -l HEAD 其中: 参数-l可以显示文件大小 第一个字段时文件的属性(rw-r--r--,644) 第二个字段说明时Git对象库中的一个blob对象(文件) 第三个字段时该文件在对象库中对应的ID——40位的SHA1哈希值 第四个字段时文…
我们难免会因为种种原因执行一些错误的commit / push,git提供了revert命令帮助程序员修复这样的错误. 举个例子,下图是git commit 的历史记录 git revert 命令会通过一个新的commit 来使仓库倒退一个commit,在上例中,如果程序员想要revert 最新的那次commit (Updated to Rails 2.3.2 and edge hoptoad_notifier) $ git revert HEAD Finished one revert. [m…
有时候接手一份新代码时,看到某些文件的改动,但不清楚这个改动的作者和原因,想查看该文件的具体提交历史记录. 今天一个同事是这样做的,直接敲git log命令,然后再使用vim命令的搜索关键字的方法来查看该文件的提交记录,如下所示: 例如:我想查看frameworks/base/packages/SystemUI/AndroidManifest.xml该文件的提交记录,敲了git log命令后,直接按"/"然后加入该文件的路径,后就可以搜索该文件名作为关键字,然后按N和Ctrl+N进行上…
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013743256916071d599b3aed534aaab22a0db6c4e07fd0000 1 查看git 是否安装: git ,如果提示没有安装; ubantu 一条命令安装sudo apt-get install git 2 不是ubantu的话,用源码安装: 解压后  依次输入命令: ./config,make,su…
对于更改操作的处理 使用git status命令可以看到当前工作区的状态: git status // 查看工作区的状态 // 对于已经git add工作区中文件 git reset HEAD <file> ... // 已经添加但是还没有commit的更改,通过这命令可以取消add git commit <file> // 将更改加入版本库中 // 对于还没有add的工作区中的文件 git checkout -- <file> // 将commit后的数据检出替换工作…
git reset 是回滚操作,在 idea 中使用如下: Reset Type 有三种: Mixed 默认方式,只保留源码,回退 commit 和 index 信息 Soft 回退到某个版本,只回退了 commit 的信息,之前写的代码还是保留的,不会恢复到 index file 一级.如果还要提交,直接 commit Hard 彻底回退,本地源码也会变成上一个版本内容,不保留之前 commit 的代码 To Commit 是回滚到哪个版本,例如,HEAD 为当前版本,HEAD^ 为上一个版本…
不多说,直接上干货! 想必,能进来看我写的这篇博文的朋友,肯定是了解过. 比如SVN的操作吧,最常见的是 检出(Check out ...), 更新 (Update ...), 以及 提交(Commit ...); 相当于有一个服务器端, 可以多个客户端进行访问和操作. Git是SVN以后的新一代的版本控制系统/协议.适合于大规模的开源软件多人协作的开发.有一个总仓库(如GitHub,CSDN,OSchina等提供),每个客户端都有一个本地仓库(这个本地仓库有点对应于SVN的服务端仓库),以及一…
不多说,直接上干货! Git和TortoiseGit的区别: TortoiseGit的安装和使用依赖Git. Git有且只有一个,就是linux最初创建的那个叫做Git的程序.现在的维护者的名字我懒得去查了. 最初的Git,只能运行在*nix系统上,然后,有人为它做了windows兼容的修改,Git for windows的具体维护工作应该是德国的一家公司的几个人在负责,没错,就是我们看到的那个msysGit,一个基于windows上虚拟unix环境mGw的Git.早期还有一个单独的window…