How do I make to some of the files that I have cha

2019-03-09 02:16发布

问题:

I use TortoiseGit 1.8.3. I changed one of the files: Makefile, but I want to not offer commit it to me every once in a Git Commit. I added it to the "delete and add to ignore list", but it does not help. How do I make to some of the files that I have changed is not offered in the commit?

I want, that Makefile was in remote repository as read-only, that I could edit it locally, and then TortoiseGit does not offer to me to commit it.

That I wanted for Git-bash: https://www.kernel.org/pub/software/scm/git/docs/git-update-index.html

回答1:

Answer for TortoiseGit 1.8.15, Git 2.6.1. There is no need to revert to the command line, all functions are directly available in TortoiseGit. I've tried to summarize the various ways how this function is accessible. I assume that the reader knows what "assume unchanged" means. Here is easy documentation about this feature. Or the original documentation about --assume-unchanged or git ls-files.


Flag a file as "assume unchanged"

There are three possibilities in TortoiseGit: in the Commit dialog, the Working Tree dialog (Check for Modifications) or in the Log Messages dialog (only when Working dir changes entry is selected). From one of these dialogs do the following:

  • right-click the file and select the entry Assume Unchanged


From any file list in Windows Explorer do the following:

  • right-click the file and select properties
  • go to the Git tab
  • tick the entry Assume valid/unchanged

Remove the "assume unchanged" flag from a file (undo the above):

TortoiseGit allows to remove the flag only from the Working Tree dialog (check for Modifications).

  • in the lower left corner of the dialog: make sure to tick the option Show ignore local changeds flagged files
  • all files with assumed valid or skip worktree flag will be shown below the normal changed files
  • right-click on the file and select Unflag as skip-worktree or assume-unchanged


From any file list in Windows Explorer do the following:

  • right-click the file and select properties
  • go to the Git tab
  • untick the entry Assume valid/unchanged


回答2:

If I'm interpreting the question correctly, Alex wants to know how to undo an --assumed-unchanged action done using Tortoise Git.

You don't need to use command line Git to fix this:

  1. Navigate to the file(s) you did this action on in windows explorer,
  2. Right-click and choose Properties,
  3. Select the Git tab, there you should see a checked box next to "Assume valid/unchanged".
  4. Uncheck it and it won't be ignored by commits moving forward.



回答3:

If it doesn't help, then you need to go to a command-line interface, and check:

  • the content of the .gitignore file that you should find at the root directory of your repo (as mentioned in "TortoiseGit: hide/remove files never to be versioned")
  • the result of git rm --cached Makefile.
  • the result of git status.

I want, that Makefile was in remote repository in read-only, that I could edit it localy, and then TortoiseGIT does not offer to me to commit it.

This is different:

You need:

git update-index  --really-refresh --no-assume-unchanged Makefile

That will make any local modification to Makefile "invisible" to git, while keeping Makefile under source control.

If you want your local modifs to resist a git reset, do;

git update-index --skip-worktree Makefile


标签: tortoisegit