这个问题在这里已经有了答案:Showbothstaged&workingtreeingitdiff?(3个答案)关闭5年前。有没有办法查看同一文件的staged和unstaged版本之间的差异?例如:Changestobecommitted:modified:conf/application.confChangesnotstagedforcommit:(use"gitadd/rm..."toupdatewhatwillbecommitted)(use"gitcheckout--..."todiscardchangesinworkingdirectory)modified:conf/ap
我真正喜欢eclipse(以及gitg的0.x版本)的一点是可以逐行进行更改(请参阅第10行下图)。在编辑器atom.io中是否有允许这样做的插件?(将新旧版本并排放置,并允许暂存/还原更改)?我安装了插件git-plus,但这会暂存给定文件的所有更改,... 最佳答案 可以直接从Atom执行,使用git-pluspackage安装后,一旦您对一个文件进行了两次或多次更改,这些更改相距足够远,足以被git视为独立的hunk,那么您可以使用GitPlus:StageHunk命令:按Ctrl-Shift-P打开CommandPalett
我显然根本不了解git。这就是我得到的:gitbranch(outputsthatI'monmaster)gitcheckout-bfooecho"nextline">>file(fileisanexistingfile)gitaddfile(stages)gitcheckoutmastergitstatus(showsthatfilehas"nextline"andisstaged!!)gitcommit(commitsthechangesthatwerestagedonbranchfoo!!)gitcheckoutfoo这是踢球者。foo现在不显示对工作目录中的文件所做的任何更改或
在开始开发一些实验性的东西之前,我创建了一个新分支。我通常会忘记这一点(这不是问题),但现在我事先做了。从那以后,我更新了3个文件。在2中只是我不想提交到安全分支的实验性更改。在1中只是我绝对希望提交到安全分支的安全(次要)更改。我对将这些最后的更改也提交到新分支感到满意(但不是)。是否有可能——我确定是——(快速)将一些未暂存的、未提交的更改从我的(脏)工作目录提交到一个旧的、安全的分支?我唯一能想到的是切换分支(没有结帐),提交1个文件中的更改并切换回来,但我不知道切换回脏分支时更改会发生什么(它们还在吗?或者他们是否因为提交而“消失”了?)...我确信GIT有一些漂亮的东西,但G
所以在运行gitcommit之前,我通常会运行以下命令:gitgrep--cached-l-I"debugger"我认为它类似于:gitdiff--cached(这将向您展示您将要提交的所有更改,即,将向您展示暂存文件中的差异)。不幸的是,我刚刚发现gitgrep的--cached选项只是告诉git“只”查看其索引中的所有内容。那么我怎样才能运行gitgrep并让它只grep通过我暂存的文件呢?(是的,我知道我可以简单地执行gitdiff--cached并在其中进行搜索,但我更希望具有通过我的暂存文件进行grep的编程能力。) 最佳答案
我正在对代码库进行大量更改。有些变化已经上演,有些还没有。我需要切换到另一个分支,但还没有准备好提交,所以我使用gitstashstash了我的当前状态。后来,我用gitstashapply来应用我的存储。然后我运行gitstatus。我注意到我的分阶段更改不再显示为“已分阶段”,而是显示为“未分阶段提交的更改”。我的理解是否正确,实际上没有数据丢失,而是“暂存”数据现在只是转换为“未暂存”数据?编辑:我应该补充一点,一些有问题的文件在存储时有暂存版本和未暂存版本。例如,文件A进行了一些更改,这些更改已暂存。然后,对尚未上演的文件A进行了一些更改。然后,藏起来了。
https://www.kernel.org/pub/software/scm/git/docs/gitglossary.html#def_dirty如果工作树包含尚未提交给当前分支的修改,则称工作树是“脏的”。http://www.gitguys.com/topics/glossary/脏工作目录如果文件在索引中更新后在工作目录中更新,则工作目录被认为是“脏的”。如果工作目录中的所有修改文件都已添加到索引中,则工作目录是干净的。如果我理解正确的话,“索引”也被称为“暂存区”,是一个文件将被存储的地方(复制到?符号链接(symboliclink)?)当你改变了它们,想要提交它们,但是还
在处理另一个文件时,我编辑了README.md,然后运行gitaddREADME.md。在执行git提交时,我看到README.md既在“要提交的更改”中,也在“未暂存提交的更改”中。这有意义吗?我可以在.git的哪个位置查看此文件的权威状态?#Onbranchmaster#Changestobecommitted:#(use"gitresetHEAD..."tounstage)##modified:README.md#modified:utils/arrterm##Changesnotstagedforcommit:#(use"gitadd..."toupdatewhatwill
我们可以看到存储库和工作目录之间的区别:gitdiff我们可以看到存储库和暂存索引之间的区别:gitdiff--staged但我们如何看待工作目录和暂存索引之间的区别? 最佳答案 实际上,gitdiff介于索引和工作树之间。碰巧的是,直到您对索引进行暂存更改(使用gitadd),其内容将与HEAD提交相同。gitdiffHEAD位于repo和工作树之间。参见365git.tumblr.compost: 关于git-如何查看工作目录和暂存索引之间的差异?,我们在StackOverflow上
我做出了promise,但现在很难看出我所做的全部更改。我当然可以执行gitdiff,但我宁愿撤消上次提交并保持所有更改的完整性,以便我的IDE(PyCharm)只显示哪些文件已更改。那么有没有办法撤消上次提交(真正删除它)但仍然保持我的更改?欢迎所有提示! 最佳答案 我会在其他两个答案中省略--soft并使用简单的gitreset@^(或gitresetHEAD^在旧版本的git中),这将默认为gitreset--mixed@^。不同之处在于,软重置会使文件暂存以供提交,这听起来不像您想做的那样。如果你真的想撤消提交,你也应该取消