如何从git commit删除受限制的文件?

时间:2019-03-18 09:26:49

标签: git

我在公司中使用git企业。当我“ git push ”时,它告诉我以下错误。

$ git push
Counting objects: 289, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (264/264), done.
Writing objects: 100% (289/289), 9.95 MiB | 207.00 KiB/s, done.
Total 289 (delta 37), reused 0 (delta 0)
remote: Resolving deltas: 100% (37/37), completed with 4 local objects.
remote: hooks/xxxx.sh: failed with exit status 1
remote: refs/heads/master 347a6011604730df57a348f8aa166b747d9684fe 4f6d30e187b4d20ea5ba56bd9babcdf3a3b3021b
remote: We have restricted committing abc.zip filetype. 
remote: ********RESTRICTED********
remote: abc.zip
remote: **************************
To https://gitprod.xxx
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://gitprod.xxx

如何删除zip文件并再次推送,我尝试了几种方法,但没有找到正确的方法。谢谢。

3 个答案:

答案 0 :(得分:1)

您不小心暂存了该受限制的文件类型,因此需要取消暂存。

使用:

git reset -- <filePath>

OR

git rm --cached <filePath>

只需将替换为zip文件的实际路径即可。

然后,尝试提交并再次推送。 (但是不要在提交中包含该文件。)

答案 1 :(得分:1)

由于您的最后一次(未推送)提交包含不需要的文件,因此我们需要撤消该文件,然后在没有该文件的情况下再次提交:

# undo last commit (but keep changes in working tree)
git reset --soft HEAD^

# unstage your .zip file
git reset HEAD path/to/abc.zip

# commit and push again
git commit -m "Message here"
git push

(由于上次推送已被拒绝,因此无需使用--force进行推送。)

答案 2 :(得分:0)

如果此文件已添加到您的最后一次提交中,则需要使用git commit --amend将其从此提交中删除

在进行修改之前,只需使用git rm abc.zip删除文件即可。