有没有办法查看同一文件的版本staged和unstaged版本之间的差异?
例如:
Changes to be committed:
modified: conf/application.conf
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: conf/application.conf
Run Code Online (Sandbox Code Playgroud)
当我进行更改然后再次修改文件而不进行暂存时会发生这种情况.
EDIT
该git status -vv命令还不够好,因为我需要使用diff/ difftool命令.这是因为在实践中,太多文件中的更改太多,滚动浏览所有文件并不高效.但diff/ difftool允许我指定我感兴趣的文件.
对于我正在进行的项目,我想使用:
git add . -A
Run Code Online (Sandbox Code Playgroud)
将一些文件添加到舞台上.问题是Git认为这些文件与上次提交没有变化,因此会被忽略.但是,我个人更改了文件,但Git仍然认为文件没有变化.
如何"强制"将该单个文件添加到我的存储库?
我正在写一个git pre-commit钩子.
该脚本可以重新格式化一些代码,因此它可以修改分阶段文件.
如何重新暂存已经上演的所有文件?
我正在使用git-svn作为svn客户端.我不时会遇到以下问题.
我从我当地的git分支中的几个提交开始,一个空的阶段和一个干净的工作副本.
我在windows命令行中输入"git svn rebase"来获取团队的修改并在我们之后提交我的提交以保持线性历史记录(这是使用git-svn所必需的)
一切顺利,团队的内容被提取,然后我的提交被重新定位,但......
我最终修改了工作副本,并修改了阶段中的文件,并且工作副本的修改是阶段中修改的完全相反.
我通常只是通过解除阶段中的所有内容来解决这个问题,这会恢复工作副本中的修改,这很好,但我真的很想了解这里发生了什么.
问题:这是一个错误,还是我用git rebase无法理解的东西?
注意:我在以后使用"git svn fetch"和"git rebase"时遇到了问题.
注意:我在带有大型svn存储库的Windows上使用git(10000多个文件,150000+版本),我也使用git-extensions.编辑:我用它只探索存储库并提交.我从windows命令行做了其他事情.
编辑:根据其中一条评论的要求,这里有两个截图,以帮助理解问题.第一个是工作副本的内容,第二个是舞台的内容.您可以很容易地看到两者都是完全相反的:
工作副本:

舞台(恢复工作副本修改,非常直观:相同的图像,红色和绿色交换):

编辑:我只是在一个非常简单的情况下重现了这个问题:我的提交仅修改了一个文件,在"git svn rebase"期间提取的提交非常少,并且它们都没有影响修改后的文件.我查了一下"gitk --all".它与git-extensions和"git status"完全相同.这是gitk的输出.我们从下到上看:

编辑:这是我的.git目录的内容后发生问题的"git svn rebase":
17/02/2012 04:57 0 ArmuazEm5Z
05/04/2012 02:28 0 BeMzRLwWcu
06/11/2012 14:37 90 COMMIT_EDITMSG
01/11/2012 15:42 628 config
15/02/2012 04:21 73 description
16/02/2012 13:22 0 fuMhUevkYu
05/11/2012 15:53 1 703 279 gitk.cache
05/07/2012 03:49 0 gJfUbdRuG9
06/11/2012 14:42 23 HEAD
11/07/2012 03:14 <DIR> …Run Code Online (Sandbox Code Playgroud) 我想取消所有文件删除.有一个简单的方法吗?
我想将其应用于所有删除的文件模式.
仍然很难让我的脑袋围绕着舞台的概念,因为它适用于Git.
可以用SVN进行任何类比吗?在Git中拥有阶段级别的主要目的是什么?
我是git的新手.我有来自远程的结帐文件.我不得不从git repo中删除一些文件.git rm我发出了unix rm -rf folder命令,而不是执行命令.我需要还原delete命令然后执行git rm命令.如何恢复到最新的代码?
注意:我还没有提交暂存文件.出来的git status是以下格式删除的文件列表:
# deleted: i18n/angular-locale_sl.js
# deleted: i18n/angular-locale_in.js
Run Code Online (Sandbox Code Playgroud) 假设分阶段定义了4个工作。
阶段:
现在测试、部署和上传仅在管道手动触发时运行。我们可以为此定义单独作业的规则,但它会重复。(不想使用它)
是否可以在“阶段”上定义规则,以便一个作业将在自动触发器上运行,其余 3 个作业将在管道的手动触发器上运行。
当我重命名一个重命名文件的类时,在 intellij 中它会自动在 git 中暂存重命名的文件。
我希望 Intellij 停止这样做。有谁知道是否以及如何改变这种自动行为?
笔记:
我有 intellij 配置,这样当我创建一个新文件时,它会询问它是否应该将它添加到 git。如此处所述:Intellij Idea 能否自动阶段性更改
但是在重命名类/文件时,它不会询问任何内容
在阅读如何使用 Git 时,我发现git index.
他们是:
directory cachecurrent directory cachestaging filesstaging area为什么有这么多选项可以准确地命名一件事?
我应该如何命名它以免混淆我不知道背景的未来对话者?