23

I have a tracked file in a git repository. How do I untrack this file without deleting it using magit?

20

Hitting i will gitignore the file and untrack it from the git repository.

Behind the scenes, it does git rm --cached - More info about this git command from a StackOverflow question

  • Note that you don't need to add it to the gitignore file. Just discard(I believe by default "k") changes on gitignore after i. – deadghost Feb 17 '15 at 14:51
  • Discarding (using k) just reverts the file contents to its last committed state; it does not untrack it. To test it, modify the file you just discarded, hit g in the magit buffer to refresh the contents and you will see that file appear once again in the Unstaged section. – Kaushal Modi Feb 17 '15 at 14:56
  • I mean discarding the changes on .gitignore. – deadghost Feb 17 '15 at 14:58
  • Alright, I now get what you are saying. First hit i on the file you want to untrack and then hit k on .gitignore. For my use case, if there's a file I want to untrack, I usually want to gitignore it too. That way my magit buffer stays clean and empty :) – Kaushal Modi Feb 17 '15 at 15:01
  • 3
    If you don't need to add the file to gitignore, use K (that's uppercase k). – Patrick Fournier May 5 '16 at 16:26
5

Use M-x magit-file-untrack from a buffer visiting a tracked file or from a Magit buffer. When the buffer visits a file then that file is offered as default choice.

When point is on a file in a Magit buffer, then that is also offered as default. You might also want to add the new magit-insert-tracked-files to magit-status-sections-hook, then a tree of all tracked files is inserted into the status buffer (but doing so might not be good for performance in big repositories).

5

In the Magit buffer, hit K (uppercase k) on the file. It works with magit 2.3; I don't know for earlier versions.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.