标签: git-stage

使用difftool在同一文件的分阶段和非分阶段版本之间的差异

有没有办法查看同一文件的版本stagedunstaged版本之间的差异?

例如:

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 diff git-diff difftool git-stage

11
推荐指数
1
解决办法
7293
查看次数

Git将"未更改"的文件添加到舞台上

对于我正在进行的项目,我想使用:

git add . -A
Run Code Online (Sandbox Code Playgroud)

将一些文件添加到舞台上.问题是Git认为这些文件与上次提交没有变化,因此会被忽略.但是,我个人更改了文件,但Git仍然认为文件没有变化.

如何"强制"将该单个文件添加到我的存储库?

git git-add git-stage

10
推荐指数
2
解决办法
1万
查看次数

Git:如何在预提交挂钩中重新启动暂存文件

我正在写一个git pre-commit钩子.
该脚本可以重新格式化一些代码,因此它可以修改分阶段文件.

如何重新暂存已经上演的所有文件?

git githooks git-stage

10
推荐指数
2
解决办法
3826
查看次数

为什么"git rebase"会在舞台和工作副本中留下相反的修改?

我正在使用git-svn作为svn客户端.我不时会遇到以下问题.

  1. 我从我当地的git分支中的几个提交开始,一个空的阶段和一个干净的工作副本.

  2. 我在windows命令行中输入"git svn rebase"来获取团队的修改并在我们之后提交我的提交以保持线性历史记录(这是使用git-svn所必需的)

  3. 一切顺利,团队的内容被提取,然后我的提交被重新定位,但......

    我最终修改了工作副本,并修改了阶段中的文件,并且工作副本的修改是阶段中修改的完全相反.

我通常只是通过解除阶段中的所有内容来解决这个问题,这会恢复工作副本中的修改,这很好,但我真的很想了解这里发生了什么.

问题:这是一个错误,还是我用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的输出.我们从下到上看:

  • 最后3行是在重新定位时获取的3次提交.它们都没有触及我的文件.
  • 从顶部开始的第3行显示我在rebase之后的提交:它都很好,它添加了它应该添加的内容并删除它应该删除的内容.
  • 第二行显示索引的内容:它包含恢复我的提交的修改
  • 第一行显示工作副本的内容:它包含与我的提交相同的修改,IE恢复索引中的修改.

在此输入图像描述

编辑:这是我的.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)

svn git git-svn git-rebase git-stage

9
推荐指数
1
解决办法
625
查看次数

在Git中取消暂存所有已删除的文件

我想取消所有文件删除.有一个简单的方法吗?

我想将其应用于所有删除的文件模式.

git git-add delete-file git-stage

7
推荐指数
1
解决办法
5209
查看次数

获得Git概念的"舞台"

仍然很难让我的脑袋围绕着舞台的概念,因为它适用于Git.

可以用SVN进行任何类比吗?在Git中拥有阶段级别的主要目的是什么?

git workflow git-index git-stage

7
推荐指数
2
解决办法
1508
查看次数

git undo删除文件

我是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)

git git-stage git-rm

7
推荐指数
3
解决办法
1万
查看次数

如何在gitlab“阶段”中定义规则,以便无需为作业定义单独的规则

假设分阶段定义了4个工作。

阶段:

  • 建造
  • 测试
  • 部署
  • 上传

现在测试、部署和上传仅在管道手动触发时运行。我们可以为此定义单独作业的规则,但它会重复。(不想使用它)

是否可以在“阶段”上定义规则,以便一个作业将在自动触发器上运行,其余 3 个作业将在管道的手动触发器上运行。

jobs git-stage gitlab gitlab-ci gitlab-pipelines

7
推荐指数
1
解决办法
8496
查看次数

如何不自动暂存重命名的文件

当我重命名一个重命名文件的类时,在 intellij 中它会自动在 git 中暂存重命名的文件。

我希望 Intellij 停止这样做。有谁知道是否以及如何改变这种自动行为?

笔记:

我有 intellij 配置,这样当我创建一个新文件时,它会询问它是否应该将它添加到 git。如此处所述:Intellij Idea 能否自动阶段性更改

但是在重命名类/文件时,它不会询问任何内容

intellij-idea file-rename git-stage

6
推荐指数
0
解决办法
175
查看次数

为什么“git index”有这么多名字?

在阅读如何使用 Git 时,我发现git index.

他们是:

  • directory cache
  • current directory cache
  • staging files
  • staging area

为什么有这么多选项可以准确地命名一件事?

我应该如何命名它以免混淆我不知道背景的未来对话者?

git git-index git-stage

5
推荐指数
1
解决办法
184
查看次数