Will git-rm --cached delete another user's working tree files when they pull

前端 未结 2 866
迷失自我
迷失自我 2020-12-14 09:07

I wish to stop tracking files but still keep them in my working tree.

I\'ve gathered that git rm --cached FILE will let me do that. However, if someone

相关标签:
2条回答
  • 2020-12-14 09:46

    Yes, their copies will be automatically deleted. Imagine if this deletion wouldn't happen--then working copies of all users would be polluted with piles of deleted files, which aren't needed anymore.

    However, if the remote users made local changes to these files, they won't be deleted, since pull will result in a merge conflict.

    As Jefromi suggests in his comment, while the files are removed at the other users' sides, they can easily be restored--they're under a version-control, aren't they? ;-) Files could be gotten by git checkout <revision> -- <files...>. As revision you may specify the id of the previous commit, for pull it's saved in ORIG_HEAD (see this question for details):

    git checkout ORIG_HEAD -- removed_file
    
    0 讨论(0)
  • 2020-12-14 09:51

    In such a case I would rather ignore them locally only :

    If they are already tracked :

    git update-index --skip-worktree FILE
    

    If they untracked : add them to your local exclude file

    echo "FILE" >> .git/info/exclude
    

    You can also have global .gitignore if its something you will do for all your repos (e.g. *~)

    0 讨论(0)
提交回复
热议问题