如何阻止git推送已提交的本地文件

时间:2019-02-02 18:18:19

标签: python git github

我有一个名为Thinking.py的文件,我将其添加到我的每个项目中,这是我自己对该项目进行情况的个人日志。

我最近创建了一个烧瓶和python模板,希望在GitHub上公开放置,但是我不希望它包含Thinking.py,因为它包含我自己的个人评论。

我在Thinking.py中添加了.git/info/exclude,但是当我将项目上传到gihub时,仍然显示Thinking.py文件。

请注意,在我编辑Thinking.py之前,以前的提交中已经包含.git/info/exclude

我该如何做到使Thinking.py上的任何内容都不会上传到GitHub,但是对Thinking.py所做的所有更改和提交仍保留在我的计算机上?

2 个答案:

答案 0 :(得分:1)

Git不会推送文件。 Git推送 commits 。如果该文件是在一些承诺,而你推的承诺,他们得到的文件。如果你不推犯下,他们可能已经有文件,但他们不明白这一点与承诺你不推。

如果您想绝对确定自己绝不意外推送要做的具有该文件的任何提交,请通过不提交该文件来确保没有此类提交。否则,请注意要推送的提交:在推送具有该文件的任何提交时,它们就会拥有该文件(因为它们具有该提交并且该提交具有该文件)。

如果您需要从现有提交中删除文件,那么您也必须自己删除提交,因为任何提交都不能永远被更改,只能更改一位。完全删除它们并不容易,但是可以 完成。您可能想要新的和改进的提交,可以使用代替确实包含文件的旧提交。这样做,在一个自动化的方式,做手工是没有什么好玩的,你可能会想使用git filter-branch,这是一个非常棘手的Git命令一个疯狂的数量的选项,可以做一大堆的仓库或BFG,这是Java工具,其功能git filter-branch的作用非常有限,但速度更快且更加用户友好。 See the many StackOverflow questions about the BFG.

答案 1 :(得分:0)

是对Thinking.py文件根据最新的变化也通过GIT中更新? 根据您的问题,我认为GitHub中的Thought.py文件只是您先前提交的结果,并且无论如何都不包含最新的更改。

您可以尝试摆脱文件共(请确保您不要删除本地文件意外):

Remove a file from a Git repository without deleting it from the local filesystem

希望我能帮助您!