簡體   English   中英

從 Git 遠程存儲庫中刪除 .pyc 文件

[英]Remove .pyc files from Git remote repository

偶然地,我已將 .pyc 文件推送到主存儲庫。 現在我想刪除它們,但我不能這樣做。 有什么辦法可以直接從 Bitbucket 站點中刪除它們?

  1. 使用git rm *.pyc刪除.pyc文件。 如果這不起作用,請使用git rm -f *.pyc
  2. 提交git commit -a -m 'all pyc files removed'
  3. git push
  4. 在將來的提交中,您可以通過創建.gitignore文件來忽略.pyc文件

不,您不能直接從 BitBucket 界面刪除它們,但您可以在本地結帳中刪除它們並find ./ -type f -name '*.pyc' -exec git rm {} \\; (或者簡單地 git rm 每個 pyc 文件一個一個)。 然后提交/推送您的更改。

最后,為了避免再次犯同樣的錯誤,您可以在存儲庫的根目錄下創建一個文件,並將其命名為“.gitignore”,內容如下:

*.pyc
*~
*.swp

*~ 和 ~.swp 是其他經常被意外推送的通常被遺忘的文件類型。 請參閱 gitignore https://help.github.com/articles/ignoring-files上的 github 文檔(以及他們的 .gitignore 文件倉庫以獲得一些不錯的默認值)。

git rm *.pyc --cached
git commit -a -m'remove pyc from index'
git push

PS:我看到了問題的日期,但這個解決方案看起來更好,恕我直言。 也許它會幫助某人......

這對我有用,

find . -name '*.pyc' | xargs -n 1 git rm --cached

我使用了 simeg 的解決方案,但也想刪除大量錯誤添加到分支的 *.pyc 文件。 我使用 awk 遞歸地從緩存中刪除它們。

git status | awk '{if($1=="modified:" && $2!=".gitignore") ; system("git rm --cached "$2)}'

然后,我從本地刪除了文件

find . -name *.pyc -delete

要刪除所有.pyc文件,請使用git rm -rf *.pyc

然后將*.py[co]添加到您的.gitignore文件中。 (這將防止 .pyc 和 .pyo 文件在以后的提交中被提交)

因為在默認的 Bitbucket 中,repo 中沒有 .gitignore 文件,所以你可以這樣做:

  1. 您可以創建本地 .gitignore(不應推送)並將 *.pyc 添加為一行;
  2. 您可以復制 Github 存儲庫中的 .gitignore 並在此文件中添加 *.pyc 作為一行! 您可以推送它或將其保存在您的本地存儲庫中!

使用PyDev 進行 eclipse 的快速方法。

轉到項目的 PyDev Package Explorer 並執行以下操作:


  • 右鍵單擊+ Pydev /刪除 *.pyc *.pyo 和 *$py.class 文件

    將彈出一個窗口,告訴您已刪除多少文件。

可選:將您的更改提交給團隊/服務器:

  • 右鍵單擊+團隊/提交

在提交窗口中,當我們刪除它們時,您不應該看到任何可添加的 .pyc。 此外,如果您之前提交過此類文件,那么您現在應該能夠提交它們的“刪除”。

===>您的本地和服務器存儲庫現在沒有 *.pyc *.pyo 和 *$py.class 文件:)

一個有趣的單線:

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

另一個有趣的襯墊可以刪除所有 pyc 文件。

找 。 -name '*.pyc' -exec git rm {} \\;

不要忘記按照其他答案中的步驟提交和添加 gitignore。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM