Remove .pyc files from Git remote repository

前端 未结 10 688
广开言路
广开言路 2021-01-30 10:37

Accidentally, I have pushed the .pyc files to the master repository. Now I want to delete them but I can´t do it. Is there any way to remove them directly from the Bitbucket sit

相关标签:
10条回答
  • 2021-01-30 10:46

    Because in default Bitbucket, there is no .gitignore file in the repo,so you can do :

    1. you can create local .gitignore(should not be pushed) and add *.pyc as a line;
    2. you can copy the .gitignore in Github repo and add *.pyc as a line in this file! You can push it or keep it in your local repo!
    0 讨论(0)
  • 2021-01-30 10:47

    Quick way with PyDev for eclipse.

    Go to the PyDev Package Explorer of your project and do:


    • right click + Pydev / Remove *.pyc *.pyo and *$py.class File

      a window will popup telling you how many files have been deleted.

    Optional: Commit your change to the team/server:

    • right click + team / commit

    In the commit window you shouldn't see any .pyc available to add as we deleted them. Also if you committed such files before then you should be able to commit their "deletion" now.

    ===> Your local and server repository are now free of *.pyc *.pyo and *$py.class File :)

    0 讨论(0)
  • 2021-01-30 10:48

    No, you cannot delete them directly from the BitBucket interface but you can delete them in your local checkout and find ./ -type f -name '*.pyc' -exec git rm {} \; ( or simply git rm each pyc file one by one ). Then commit/push your changes.

    Finally, to avoid ever making the same mistake again you may create a file at the root of your repo and name it '.gitignore' with the contents:

    *.pyc
    *~
    *.swp
    

    *~ and ~.swp are other commonly forgotten file types that are often accidentally pushed. See the github doc on gitignore https://help.github.com/articles/ignoring-files (and their repo of .gitignore files for some nice defaults).

    0 讨论(0)
  • 2021-01-30 10:51
    git rm *.pyc --cached
    git commit -a -m'remove pyc from index'
    git push
    

    PS: I see the date of question, but this solution looks better, imho. May be it'll help someone.. .

    0 讨论(0)
  • 2021-01-30 10:55

    A one-liner for fun:

    git status | grep pyc | sed -e 's/ new file: //g' | xargs -I {} git rm --cached {}

    0 讨论(0)
  • 2021-01-30 10:58
    1. Remove .pyc files using git rm *.pyc. If this not work use git rm -f *.pyc
    2. Commit git commit -a -m 'all pyc files removed'
    3. Push git push
    4. In future commits you can ignore .pyc files by creating a .gitignore file
    0 讨论(0)
提交回复
热议问题