缓存的 Git diff 什么都不做

标签 git github

这里是我所在的地方:

  1. 在 GitHub 上创建了一个新的 repo
  2. 在我的 PC 上本地初始化 (git add .) 我的工作目录
  3. 提交(git commit -m)所有更改到阶段
  4. 通过添加新的 .png 文件进行了另一项更改
  5. 另一个 git commit -m
  6. 现在我想查看所有暂存文件的列表,这些文件将在我第一次(或任何时候)实际将它们推送到远程存储库 (https//.../../) 之前推送.所以我假设会有 2 个充满更改的提交要显示

如果我尝试再次提交 (#3),它会显示无须提交,工作目录干净。所以我一定是上次成功提交了,我想这就是为什么要这样说。

当我执行 git status 时,我没有要提交,工作目录干净

但是当我尝试在 OS X 的终端中键入 git diff --cached --name-onlygit diff --staged 时,它什么也没做。再次运行该命令后,我只是得到命令提示符。

我是不是漏掉了什么?我在 git diff 上搜索过东西,但我一定是瞎了。

最佳答案

运行 git diff --cached 将显示存储库和索引之间的区别(文件在提交到目录之前由 git add 暂存的地方)存储库)。它不会查看您的工作目录中的文件,也不会比较存储库中修订之间的差异。

如果您想查看本地存储库与上游存储库有何不同,请首先确保远程存储库的本地缓存是最新的:

git remote update

然后将本地分支与远程存储库中的相应分支进行比较:

git diff --name-only mybranch origin/mybranch

..假设您的 Remote 名为 origin,它可能就是这样。

更新

如果您要推送到一个空的远程存储库,那么回答“将推送哪些文件?”是“所有这些”,并且没有什么可以针对 diff 运行。

您可以运行 git ls-files 来查看存储库中所有文件的列表。

在我之前的示例中,mybranch 将是分支的名称,例如 masterbug/1234this -is-a-nifty-feature,该示例假定您将本地分支推送到远程存储库中同名的分支。

更新 2

你问:

my remote branch is a url so what is origin...the uri/[repo name]? so origin is the uri? And what would I refer to as the name of my local branch?

一个 git 仓库可以与一个或多个远程仓库相关联,称为“remotes”。如果您克隆远程存储库:

$ git clone git@github.com:larsks/sandbox.git

您最终会得到一个名为 origin 的远程引用此存储库:

$ cd sandbox
$ git remote -v
origin  git@github.com:larsks/sandbox.git (fetch)
origin  git@github.com:larsks/sandbox.git (push)

您的本地分支最初名为 master,因此您的初始推送如下所示:

$ git push origin master

这要求 git 将您的本地 master 分支推送到远程存储库的 master 分支,称为 origin

但是您可以使用“git checkout -b”或“git branch”命令创建新分支。那里有很多文档可能会提供比我在此答案中更好的概述。我将从 The Git Book 开始.

关于缓存的 Git diff 什么都不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30765170/

相关文章:

git - 外部差异 (Ctrl+D) 在 sourcetree 中不再工作

git - 如何git添加整个文件夹

ruby - 伪造一个用于测试的 git 存储库

linux - Windows 等效于此 gitk Linux 命令

maven - 如何将 Github 原始存储库作为代理存储库添加到 Sonatype Nexus?

merge 2 个分支之前进行 Git 比较

Git 智能 merge

javascript - 具有多个文件夹的存储库的 Travis CI 配置是什么

git - 如何防止 git clone --filter=blob :none --sparse from downloading files on the root directory?

git - 什么是 Git 剪枝?