git 之 git diff 与 更改提交
来源:互联网 发布:在线数据采集器 编辑:程序博客网 时间:2024/05/04 12:43
1.git diff 的 各种
$ git diff
比较工作目录和索引区(缓存区)的差异,由于我们在对文件进行编辑的时候,一般是在工作目录中编辑并且保存。而索引区和版本库的文件内容是不改变的。借此,我们可以与索引区的文件进行比较,查看我们修改了社么。
$ git diff commit
比较工作目录和给定提交的文件的差异,commit常用HEAD代替。
$ git diff --cached commit
显示索引区和版本库的文件差异,如果省略掉commit,Git则会默认为HEAD.
$ git diff commit1 commit2
任意指定两个提交,这条命令会显示它们之间的差异。如:
$ git diff HEAD^ HEAD
上面的命令式用来比较当前版本与上个版本的不同。
2.更改提交(小心使用)
作为一般原则,只要没有其他开发人员(也包括自己)已经获得你的版本库的副本,你就可以自由的修改和完善版本库提交历史记录。更直白的说,只要没有人有版本库中的某个分支的副本,你就可以修改该分支。
打个比方:
假如前一段时间,你提交了四个文件有A、B、C、D在master这个分支上,这些提交已经被其他人获得了,就出现“已发布的历史记录”。假设你后面又进一步做开发,在相同的分支上产生了4个新的文件W、X、Y、Z,但是是尚未发布的新提交。在此时,你是不可以去动A、B、C、D这四个文件,但你是可以修改W、X、Y、Z在你重新发布master分支之前,你可以对它们进行重新排序、合并、删除、添加新提交。
1.回退到上个版本中
$ git reset --hard HEAD^
彻底撤销最近的提交。引用回退到前一次,而且工作目录和索引区(暂存区)都会回退到上一次提交的状态。自上一次以来的提交全部丢失。
【那么如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推。那如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:git reset –hard HEAD~100 即可】
2.某个文件(如foo.c)意外地暂存到了索引
$ git ls-files$ git reset HEAD foo.c$ git ls-files
第一句和第三句是为更好的了解文件是否存在;为了避免提交foo.c,对foo.c使用git reset HEAD 可以解释为:就foo.c文件而言,让我的索引看起来就如同和HEAD一样没有foo.c的存在。
3.某个文件意外地提交到了索引区和版本库
$ git reset --mixed HEAD^
工作目录不改变,但是索引区会回退到上一次提交之前,版本区也会回退一次。上面的这个命令可以省略–mixed直接写成git reset HEAD^。
4.某个文件意外地提交到了版本库
$ git reset --soft HEAD^
工作目录和索引区不改变,但是版本库向前回退一次。当对最新的提交说明或者提交的更改不满意时,撤销最新的提交以便重新提交。
版本库的引用变化历史记录
$ git reflog
- git 之 git diff 与 更改提交
- 比较提交 - Git Diff
- 比较提交 - Git Diff
- 比较提交 - Git Diff
- Linux diff 与 git diff
- git diff与git diff HEAD -- file
- git diff git status 提交检查
- 【Git】diff 与 patch
- Git之diff命令
- git提交更改
- 查看与对比历史提交记录(git show; git log; git diff)
- Git学习之 -- git diff 命令魔法
- git 替换diff与mergetool
- git(六)-标签与diff
- Git之diff和status
- git 使用小技巧之撤销提交操作与恢复更改前操作
- git commit 提交最新更改
- (八)Git 提交更改
- QT中生成字符串md5的方法(转)
- c#连接数据库
- 常用算法以及加密工具
- discuz学习笔记:以easyUI DataGrid为前台进行数据库增查删改操作
- 欢迎使用CSDN-markdown编辑器
- git 之 git diff 与 更改提交
- 二叉树的递归建立与应用
- 最长重复子串和最长不重复子串求解
- shiro 权限框架认证和授权原理介绍
- 几种不同格式的json解析
- 自定义谷歌滚动条样式
- mysql备份数据库和导入
- jsp 报错 equal symbol expected
- 周志华《Machine Learning》学习笔记(6)--神经网络