我正在使用源代码树的git。Git - 阻止被推送的特定提交
我已经对分支的本地副本中的某些文件进行了3-4次更改。我将永远需要在本地进行这些更改,但我希望永远不会意外地将其推向远程。我当然可以保留这些更改未承诺,但这种方式我冒着丢失意外丢弃或清洁等情况下的变化。
有没有什么办法可以标记一些文件,永不被推送。
或者有什么更好的方法来达到我的目的。
有些是文件更改&一些新的文件我已经加入到本地仓库
我正在使用源代码树的git。Git - 阻止被推送的特定提交
我已经对分支的本地副本中的某些文件进行了3-4次更改。我将永远需要在本地进行这些更改,但我希望永远不会意外地将其推向远程。我当然可以保留这些更改未承诺,但这种方式我冒着丢失意外丢弃或清洁等情况下的变化。
有没有什么办法可以标记一些文件,永不被推送。
或者有什么更好的方法来达到我的目的。
有些是文件更改&一些新的文件我已经加入到本地仓库
如果你想提交更改的话,建议在一个单独的分支这样做,你重订到主后,每的承诺你在那里做。然后,您可以在签出本地唯一分支的同时进行工作,然后在提交之前签出主设备,然后推送主设备,仅签出本地分支并在主设备上进行重设。
如果您不需要提交更改: 您可以尝试使用.git/info/exclude文件,该文件与.gitignore类似,但仅适用于本地计算机,并且未提交。
Explicit repository excludes
If you don't want to create a .gitignore file to share with others, you can create rules that are not committed with the repository. You can use this technique for locally-generated files that you don't expect other users to generate, such as files created by your editor.
Use your favorite text editor to open the file called .git/info/exclude within the root of your Git repository. Any rule you add here will not be checked in, and will only ignore files for your local repository.
In Terminal, navigate to the location of your Git repository.
Using your favorite text editor, open the file .git/info/exclude.
有新的文件比较简单的答案,但你以某种方式修改过的文件都有点困难。
对于新文件,您应该只能使用.gitignore
。如果您不想将.gitignore
添加到项目的.gitignore
,那么您可以使用git向用户添加配置并忽略特定文件。假设您要忽略foo/
目录中的所有文件。你可以做到这一点通过:
git config --global --add core.excludesfile $HOME/.gitignore
echo "/foo" >> $HOME/.gitignore
对于编辑的文件,你可能会创建一个新的文件,并修改您的初创公司寻找这些新文件正确。
我很抱歉,但有人要告诉你事实..你不能做你想做的。
你根本无法阻止提交被推送,除非它在另一个推送分支中。但在这种情况下,你不会同时拥有文件和你的开发分支。
答案你不想
对于新文件,有人说,你可以忽略它们。
对于已经跟踪的文件,您可以告诉git忽略git update-index --assume-unchanged <file>
的本地修改,但这不会阻止git使用结帐删除更改,例如。
你能做些什么
我认为,唯一的选择就是改变你的应用程序如何加载这些文件(我认为他们是类似的配置文件)。
例如有一个可配置的本地文件夹,其中可以找到其他属性文件。此文件夹可能位于存储库之外,可能位于另一个存储库或备份其他服务
您可以为此分支添加预推钩以提醒您,如果适合您,您不应该推送任何提交吗? – kuskmen
@kuskmen - 我想在这个分支做其他提交。只是不是这几个文件。 – user93353
https://stackoverflow.com/questions/6644329/block-a-git-branch-from-being-Pushed中的一些有趣的想法,虽然它更多关于分支机构。 – Chris