标签: git-diff

GIT每周活动

我想生成每周GIT报告,在那里我可以看到每个开发人员在特定时间范围内提交和删除了多少代码.

目的是在特定时间范围内概述开发人员活动

  • 开始日期
  • 结束日期
  • 开发人员
  • 提交
  • 添加了代码
  • 删除了代码

如果我可以将这些信息导出到csv中会很棒

[some-script/command] > weekly-git-log.csv
Run Code Online (Sandbox Code Playgroud)

git report git-diff git-log git-bash

6
推荐指数
2
解决办法
1571
查看次数

SourceTree:如何在相反的方向做一个 git diff?

如何git diff在 Atlassian SourceTree 桌面应用程序中以相反的方向执行?换句话说,我如何让 SourceTree 做git diff b a而不是git diff a b?

例如,如果我的提交在我的提交窗格中按以下顺序排列:

  3333
  2222
  1111
Run Code Online (Sandbox Code Playgroud)

我选择 3333 和 1111,它会显示从 1111 到 3333(即git diff 1111 3333)的变化差异。

我如何让它git diff在另一个方向上做一个,以便它是从 3333 到 1111(即git diff 3333 1111)的不同变化?

(注意:这个问题具体是关于如何在 Atlassian SourceTree 桌面应用程序中执行此操作,而不是一般如何在 git 中执行此操作。)

这是一个屏幕截图,显示我在 SourceTree 中选择了 2 个提交以查看差异

git git-diff atlassian-sourcetree

6
推荐指数
2
解决办法
7619
查看次数

如何告诉`git diff <commit>`来区分以前在`<commit>`中跟踪的未跟踪文件?

如果我想看到<commit>和工作目录(WD)之间的差异,我运行

% git diff <commit>
Run Code Online (Sandbox Code Playgroud)

这通常做我想要的,但如果WD包含在<commit>创建时被跟踪的文件,但现在没有被跟踪(或在当前分支中),那么生成的差异会将WD中的这些文件视为如果他们是/dev/null.

我可以想象这将是适当行为的情况,但目前我希望能够看到<commit>当前目录之间的"真正"差异,使用当时正在跟踪的文件列表<commit>创建了.

有没有办法指示git diff这样做?

编辑:如果有一种方法可以隐藏(后来恢复)只是索引,也许git reset <commit>之前运行git diff <commit>会产生<commit>与WD 之间的完全比较,但我还没有想出如何有选择地隐藏(以后恢复)指数......哦!我想我可以像这样做一个"穷人藏匿":cp -a .git/index .git/index.bak!?

git git-diff

6
推荐指数
1
解决办法
1310
查看次数

移动项目文件夹后,git 显示存储库中的许多更改

我对 git 很陌生,但已经很享受了。这是我目前的问题:

  • 一些信息:
    • 我正在扩展一个朋友给我的项目作为档案。该文件夹包含 git 存储库,并在 github 上有一个来源。
    • 在清理了不必要的东西后,我在 BitBucket 上创建了一个帐户并将整个项目推送到那里并且从源头上取消跟踪
    • 我一直工作得很好:创建分支、提交、合并,一切都很好。一个月来,我开始在一个分支上工作并更改了一些文件(我认为大约 20 个)。一切似乎都很好。
  • 问题:
    • 几天前,我决定将项目文件夹从一个分区移动到另一个分区(我在 Macbook 上工作,我将它从 Windows 分区移动到了 MacOS 的分区)
    • 当git status 'ed 时,我注意到我项目中的所有文件都被视为已修改,而不仅仅是我当前的更改。现在我不知道我的更改是什么,分支也没用。我该怎么做才能只看到我的更改?我还没有触及项目的大部分内容,整个历史都很好。

git git-diff git-branch

6
推荐指数
2
解决办法
2334
查看次数

是否可以使用git来比较PowerPoint版本控制的版本?

我有一些PowerPoint文档,使用git进行版本控制。我想知道文件版本之间的区别。文字是最重要的,图像和格式并没有那么重要(至少目前还不是)。

git diff powerpoint git-diff

6
推荐指数
1
解决办法
3801
查看次数

git diff --numstat with --name-status

有没有办法在一次运行中获得运行git diff --numstat和git diff --name-status组合的输出?
我的问题是,如果我只使用,--numstat那么我不知道是否只是在文件中添加了一些新行,或者文件是否全新.使用时--name-status,如果文件是新的,则获取信息,但缺少关于行修改的统计信息.

目前我的解决方法是单独运行两个命令,然后通过PowerShell脚本合并该输出,但由于repo相当大,我希望首先获得所需的输出.在此先感谢您的帮助!

git git-diff

6
推荐指数
1
解决办法
3788
查看次数

如何仅列出两个分支之间有变化的文件名?

我的存储库中有两个分支,我想对某些文件进行区分.

我想仅列出这两个分支之间新添加的迁移

就像是:

git diff branch1 branch2 | grep /db/migrate
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏

git-diff

6
推荐指数
1
解决办法
4186
查看次数

如何让 git log 显示相对于当前目录的文件路径?

目前我正在处理的基于 Git 的项目,我通常总是在一个子目录中。

下面是我git log --name-only从存储库根目录的子目录运行命令时的输出。

commit 678bd5ba6fc5474c4c61406768bf6cba5937c5d1
Author: thegreendroid
Date:   Mon Mar 27 09:36:24 2017 +1300

    Commit message

 child_dir1_from_root/file1                     |  184 +--
 child_dir2_from_root/file2                     |    2 +-
Run Code Online (Sandbox Code Playgroud)

我如何git log才能输出类似下面的内容?这使得比较列出的文件非常容易,只需复制文件路径并运行,git diff HEAD~ {copied_file_path}而不必手动修改文件路径然后运行命令。

commit 678bd5ba6fc5474c4c61406768bf6cba5937c5d1
Author: thegreendroid
Date:   Mon Mar 27 09:36:24 2017 +1300

    Commit message

 file1                                          |  184 +--
 ../child_dir2_from_root/file2                  |    2 +-
Run Code Online (Sandbox Code Playgroud)

我查看了git log文档,但没有任何突出之处。我可以编写一个脚本来做到这一点,但我很好奇 Git 是否有内置方式。

git diff git-diff git-difftool

6
推荐指数
1
解决办法
2001
查看次数

如何从 git diff --no-index 中排除文件和目录

如何从 中排除文件和目录git diff --no-index?

例如,我想显示两个目录project1&之间的差异,project2同时忽略它们的顶级.git目录 ( project1/.git& project2/.git) 及其所有.DS_Store文件。

git diff git-diff

6
推荐指数
1
解决办法
806
查看次数

git diff 的输出在 powershell 中没有正确处理

我已经阅读了几个关于这个问题的 QA,但没有一个提供答案。有一个变通方法,我在这里再次说明,但我想了解并解决问题。

问题

问题是git diff reva revb | Out-File mypatch.patch在 powershell中执行命令会产生“垃圾字符”来代替德语元音变音(?ñ 而不是 ä)。

调查

当我按照$Env:LESSCHARSET="utf8"某些 QA 中的建议执行时,我确实在终端中获得了正确的输出,但是一旦将其重定向到文件mypatch.patch,变音符号(和其他字符)就会被破坏。甚至git --no-pager diff reva revb会在终端中产生正确的输出。但是,一旦您想将其通过管道传输到文件,那就错了。你看到的不是你得到的!

在我看来,输入到Out-File已经被破坏,因此设置-Encoding参数不会改变任何东西。我不认为Out-File是这里的罪魁祸首。例如,该命令$mypatch = git diff reva revb(即使在 diff 之前添加了 --no-pager)会导致一个变量,例如欧元符号或变音符号在该变量被打印到终端时出现错位(Ôé¼ 而不是 €)。

我在 Windows 10 (1709) 上尝试了 powershell 5.1 和开源 powershell core 6.0.4。我使用 git 2.18.0.windows.1。它适用于 windows 命令行 (cmd),因此简单的解决方法是从 powershell 控制台调用:

解决方法

cmd /c "git diff reva revb > mypatch.patch"

题

这仅适用于 PowerShell …

windows git powershell git-diff character-encoding

6
推荐指数
1
解决办法
1184
查看次数