我有一个使用 Sourcetree 管理的 Bitbucket Git 存储库。
我有两个要提交的文件夹,但我需要忽略这些文件夹中的所有文件,因为它们只包含临时文件。
我怎样才能做到这一点?
我有一个使用 Sourcetree 管理的 Bitbucket Git 存储库。
我有两个要提交的文件夹,但我需要忽略这些文件夹中的所有文件,因为它们只包含临时文件。
我怎样才能做到这一点?
对于 Sourcetree 用户:如果您想忽略特定文件夹,只需从该文件夹中选择一个文件,右键单击它并执行“忽略...”。您将有一个弹出菜单,您可以在其中忽略“忽略下面的所有内容:<YOUR UNWANTED FOLDER>”
如果“忽略”选项灰显,则必须选择“停止跟踪”选项。之后,该文件将添加到暂存文件中,红色背景图标上带有减号,未暂存文件列表中的文件图标将变为紫色背景上的问号。现在在Unstaged 文件列表中,“忽略”选项再次启用。只需按照上述说明进行即可。
将此添加到 .gitignore:
*
!.gitignore
据我所知,Git 不跟踪文件夹,只跟踪文件 - 因此无法提交空文件夹(或忽略所有文件的文件夹)。如果您由于构建过程中的某些步骤而需要存在该文件夹,也许您可以让您的构建工具创建它?或者,您可以在文件夹中放置一个未忽略的空文件并提交。
在对此进行了至少一个小时的思考之后,我提供了这个答案以尝试扩展其他人的评论。要忽略文件夹/目录,请执行以下操作:如果您的项目根目录中没有 .gitignore 文件(该名称完全是“.gitignore”),请在要排除的文件夹中创建一个虚拟文本文件。在 Source Tree 内部,右键单击它并选择 Ignore。你会得到一个看起来像这样的弹出窗口。
选择“下面的所有内容”,然后从下拉列表中选择要忽略的文件夹。这将在您的根目录中创建一个 .gitignore 文件并将文件夹规范放入其中。
如果你的根文件夹中已经有一个 .gitignore 文件,你可以按照上面相同的方法,或者你可以编辑 .gitignore 文件并添加你想要排除的文件夹。它只是一个文本文件。请注意,它在路径名中使用正斜杠而不是反斜杠,正如我们 Windows 用户所习惯的那样。我尝试在 Windows 资源管理器中手动创建 .gitignore 文本文件,但它不允许我创建没有名称的文件(即只有扩展名)。
请注意,添加 .gitignore 和文件规范对已经被跟踪的文件没有影响。 如果您已经在跟踪这些,则必须停止跟踪它们。(右键单击文件夹或文件并选择停止跟踪。)然后您会看到它们从绿色/干净或琥珀色/已更改图标变为红色/已删除图标。在您下一次提交时,文件将从存储库中删除,然后显示为蓝色/已忽略图标。另一位贡献者询问为什么对特定文件禁用忽略,我认为这是因为他试图忽略已经被跟踪的文件。您只能忽略带有蓝色问号图标的文件。
正如其他人所提到的:git 不跟踪文件夹,只跟踪文件。
您可以使用以下命令(或等效逻辑)确保文件夹存在:
echo "*" > keepthisfolder/.gitignore
git add --force keepthisfolder/.gitignore
git commit -m "adding git ignore file to keepthisfolder"
该文件的存在意味着任何签出存储库的人都将拥有该文件夹。
gitignore 文件的内容将意味着其中的任何内容都将被忽略
您不需要不忽略 .gitignore 文件本身。这是一条一旦实施就毫无用处的规则。
或者
如果您希望将所有忽略定义保留在同一个位置,您可以在项目的根目录中创建 .gitignore ,其内容如下:
*.tmp # example, ignore all .tmp files in any folder
path/to/keepthisfolder
path/to/keepthatfolder
并确保文件夹存在
touch path/to/keepthisfolder/anything
git add --force path/to/keepthisfolder/anything
git commit -m "ensure keepthisfolder exists when checked out"
“任何东西”实际上可以是任何东西。常用名称有 .gitignore、.gitkeep、空。
如果您的忽略选项显示为灰色,您必须先停止跟踪文件,然后才能忽略它。您只需右键单击该文件并点击“停止跟踪”即可。
旁边应出现一个蓝色图标。再次右键单击它,然后单击忽略。
忽略源树上的完整文件夹。
Just Open Repository >Repository setting > Edit git ignore File and
you can rite some thing like this :
*.pdb
*.bak
*.dll
*.lib
.gitignore
packages/
*/bin/
*/obj/
对于 bin 文件夹和 obj 文件夹,只需编写: */bin/ */obj/
在 Sourcetree 中:只需忽略指定文件夹中的文件。Sourcetree 将询问您是否要忽略该文件夹中的所有文件。这是完美的!