git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Bryan Turner <bturner@atlassian.com>
To: Noel Yap <noel.yap@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: `git diff` after `git checkout from-branch -- files` reports nothing
Date: Tue, 30 Nov 2021 13:39:20 -0800	[thread overview]
Message-ID: <CAGyf7-Ea719UNEAQSTeeSYyCcsqMo5TWXR+dSr8sDqDfj+tLAA@mail.gmail.com> (raw)
In-Reply-To: <CALa_nQ=Q1h9b_BZcg9AeJurLeRpGrpUFuyoMz-DYKB3bgFJj4Q@mail.gmail.com>

On Tue, Nov 30, 2021 at 12:49 PM Noel Yap <noel.yap@gmail.com> wrote:
>
> Thank you for filling out a Git bug report!
> Please answer the following questions to help us understand your issue.
>
> What did you do before the bug happened? (Steps to reproduce your issue)
>
> `git checkout -b to-branch; git checkout from-branch -- filenames; git
> status; git diff`

"git diff" as run here by default only shows _unstaged_ changes. Since
you ran "git checkout from-branch -- filenames", those changes were
_staged_. That means you'd need "git diff --cached" or "git diff
--staged" to see them.
>
> What did you expect to happen? (Expected behavior)
>
> `git status` expected to show updated files and `git diff` expected to
> show file changes.
>
> What happened instead? (Actual behavior)
>
> `git status` showed updated files but `git diff` showed no file changes.

"git status" compares the working copy to the index, so it will always
show the changes, but it has 2 different blocks, staged and unstaged
changes. If your changes appear in the staged block, you need "git
diff --cached" or "git diff --staged". If they're in the unstaged
block, they'll be visible in "git diff".

>
> What's different between what you expected and what actually happened?
>
> `git diff` was expected to show file changes but it showed nothing instead.
>
> Anything else you want to add:
>
> If I `git reset -q HEAD -- filenames`, `git diff` starts showing file changes.

This unstaged the changes, at which point they show in a plain "git
diff". They also would move from the staged block to the unstaged
block in your "git status" output.

As far as I can tell everything is working as intended.

Hope this helps,
Bryan Turner

>
> Please review the rest of the bug report below.
> You can delete any lines you don't wish to share.
>
>
> [System Info]
> git version:
> git version 2.34.1
> cpu: x86_64
> no commit associated with this build
> sizeof-long: 8
> sizeof-size_t: 8
> shell-path: /bin/sh
> uname: Linux 5.11.0-36-generic #40~20.04.1-Ubuntu SMP Sat Sep 18
> 02:14:19 UTC 2021 x86_64
> compiler info: gnuc: 9.3
> libc info: glibc: 2.31
> $SHELL (typically, interactive shell): /bin/bash
>
>
> [Enabled Hooks]
> applypatch-msg
> commit-msg
> post-applypatch
> post-checkout
> post-commit
> post-merge
> post-receive
> post-rewrite
> post-update
> pre-applypatch
> pre-auto-gc
> pre-commit
> pre-merge-commit
> pre-push
> pre-rebase
> pre-receive
> prepare-commit-msg
> push-to-checkout
> sendemail-validate
> update

  reply	other threads:[~2021-11-30 21:39 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-30 20:48 `git diff` after `git checkout from-branch -- files` reports nothing Noel Yap
2021-11-30 21:39 ` Bryan Turner [this message]
2021-11-30 23:34   ` Noel Yap

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAGyf7-Ea719UNEAQSTeeSYyCcsqMo5TWXR+dSr8sDqDfj+tLAA@mail.gmail.com \
    --to=bturner@atlassian.com \
    --cc=git@vger.kernel.org \
    --cc=noel.yap@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).