git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Can git tell me which uncommitted files clash with the incoming changes?

From
Duy Nguyen <pclouds@gmail.com>
Date
Dec 17, 2018, 16:24 UTC
Message-ID
<CACsJy8ANoiWfmLkmO9ACab5H+m2c2y5uhKBJzGNwwxcs9zV0wA@mail.gmail.com>
In-Reply-To
<CAG2YSPzmN5u1uAPVbjsqC3LzVVinFR21-_6wfrkBHdPWhOfMfQ@mail.gmail.com>

On Mon, Dec 17, 2018 at 2:11 PM Mark Kharitonov <mark.kharitonov@gmail.com> wrote:

Show 23 quoted lines
>
> Hi,
> I have asked this question on SO
> (https://stackoverflow.com/questions/53679167/can-git-tell-me-which-uncommitted-files-clash-with-the-incoming-changes)
> and usually there are tons of responses on Git questions, but not on
> this one.
>
> Allow me to quote it now.
>
> Please, observe:
>
>     C:\Dayforce\test [master ↓2 +0 ~2 -0 !]> git pull
>     error: Your local changes to the following files would be
> overwritten by merge:
>             2.txt
>     Please commit your changes or stash them before you merge.
>     Aborting
>     Updating 2dc8bd0..ea343f8
>     C:\Dayforce\test [master ↓2 +0 ~2 -0 !]>
>
> Does git have a command that can tell me which uncommitted files cause
> the this error? I can see them displayed by git pull, but I really do
> not want to parse git pull output.

Assume that you have done "git fetch origin" (or whatever master's upstream is). Do

git diff --name-only HEAD origin/master
You get the list of files that will need to be updated. Do
git diff --name-only

to get the list of files that have local changes. If this list shares some paths with the first list, these paths will very likely cause "git pull" to abort.

For a better check, I think you need to do "git read-tree -m" by yourself (to a temporary index file with --index-output) then you can examine that file and determine what file has changed compared to HEAD (and if the same file has local changes, git-pull will be aborted). You may need to read more in read-tree man page.

Ideally though, git-read-tree should be able to tell what paths are updated in "--dry-run -u" mode. But I don't think it's supported yet.

-- 
Duy
Previous: Jeff KingNext: Elijah Newren
Message 5 of 10 in “Can git tell me which uncommitted files clash with the incoming changes?”
  1. Mark KharitonovDec 17, 2018
  2. Jeff KingDec 17, 2018
  3. Ævar Arnfjörð BjarmasonDec 17, 2018
  4. Jeff KingDec 17, 2018
  5. Duy NguyenDec 17, 2018
  6. Elijah NewrenDec 17, 2018
  7. Duy NguyenDec 17, 2018
  8. Mark KharitonovDec 17, 2018
  9. Jeff KingDec 18, 2018
  10. Elijah NewrenDec 18, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.