如何在Windows上使用msysgit忽略Git中的目录或文件夹?
.gitkeep
)使用隐藏文件来指示应保留的目录
/
在到底是什么使得它知道它的目录应该忽略?
如何在Windows上使用msysgit忽略Git中的目录或文件夹?
.gitkeep
)使用隐藏文件来指示应保留的目录
/
在到底是什么使得它知道它的目录应该忽略?
Answers:
默认情况下,.gitignore
实际上文件名为时,将显示Windows资源管理器.gitignore.txt
。
Git不会使用 .gitignore.txt
而且您不能将文件重命名为.gitignore
,因为Windows资源管理器认为它是gitignore类型的文件,没有名称。
非命令行解决方案:
您可以将文件重命名为“ .gitignore”。,它将创建“ .gitignore”
".gitignore"
,它会保存文件名而不会自动添加扩展名。
".gitignore."
-这是很棒的把戏!我也总是遇到麻烦.htaccess
...
似乎忽略文件和目录有两种主要方法:
.gitignore
.gitignore
文件放到除.git
文件夹之外的存储库的根目录中(在Windows中,请确保您看到了真实的文件扩展名,然后进行制作.gitignore.
(最后一点是创建一个空文件扩展名))~/.gitignore_global
并运行git config --global core.excludesfile ~/.gitignore_global
以将其添加到您的Git配置中注意:可以通过运行取消跟踪之前跟踪的文件 git rm --cached filename
存储库排除 -对于不需要共享的本地文件,只需将文件模式或目录添加到文件中.git/info/exclude
。这些规则未提交,因此其他用户看不到它们。更多信息在这里。
要在被忽略的文件列表中设置例外,请参阅此问题。
git rm --cached <filename>
。在您创建.gitignore
我有一些问题,创建在一个文件中的Windows资源管理器中有一个.
开头。
一种解决方法是进入命令提示符并使用“编辑”创建一个新文件。
.
在末尾添加一个额外的内容,这样资源管理器就不再考虑.gitignore
扩展了。然后,在进入时,没有扩展名的尾随点被吃掉,您剩下.gitignore
TL; DR:尝试命名它.gitignore.
=>您最终得到.gitignore
要指示Git忽略某些文件或文件夹,您必须创建.gitignore
文件。
但是在Windows资源管理器中,您必须提供文件名。您只是不能创建带有扩展名的文件。诀窍是创建一个空文本文件,然后转到命令提示符并将文件名更改为.gitignore
:
ren "New Text Document.txt" .gitignore
现在,使用您喜欢的文本编辑器打开文件,并添加您希望忽略的文件/文件夹名称。您也可以像这样使用通配符:*.txt
。
type nul > .gitignore
创建一个空文件
.gitignore.
时,文件扩展名不隐藏在Windows资源管理器
如果要维护文件夹而不是其中的文件,只需在文件夹中放置一个“ .gitignore”文件,内容为“ *”。该文件将使Git忽略存储库中的所有内容。但是.gitignore
将包含在您的存储库中。
$ git add path/to/folder/.gitignore
如果添加一个空文件夹,则会收到此消息(.gitignore是隐藏文件)
The following paths are ignored by one of your .gitignore files:
path/to/folder/.gitignore
Use -f if you really want to add them.
fatal: no files added
因此,使用“ -f”强制添加:
$ git add path/to/folder/.gitignore -f
同样在您的\.git\info
项目目录中,有一个排除文件实际上与.gitignore
(我认为)相同。您可以在其中添加要忽略的文件和目录。
要忽略Git中的整个目录,最简单的方法是在目标目录中包含一个.gitignore文件,该文件仅包含“ *”。
一个说明性的例子,
示例系统
/root/
.gitignore
/dirA/
someFile1.txt
someFile2.txt
/dirB/
.gitignore
someFile3.txt
someFile4.txt
目标
顶级.gitignore(/root/.gitignore)
忽略目录.gitignore(/root/dirB.gitignore)
就这么简单:)
如果其他所有方法都失败,请尝试编辑文件
/.git/info/exclude
并将所需目录添加到文件末尾,如下所示:
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
assets/
compiled/
我将文件夹“ assets”和“ compiled”添加到要忽略的文件和目录列表中。
在Unix上:
touch .gitignore
在Windows上:
echo > .gitignore
在终端中执行的这些命令将.gitignore
在当前位置创建一个文件。
然后只需向该.gitignore
文件添加信息(例如使用Notepad ++),哪些文件或文件夹应被忽略。保存您的更改。而已 :)
详细信息:.gitignore
我认为问题在于您的工作树是这样的:
a-cache/foo
a-cache/index.html
b-cache/bar
b-cache/foo
b-cache/index.html
.gitignore
...与.gitignore
您描述的一样。这将为您提供如下git status
输出:
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
# a-cache/
# b-cache/
... 如果该index.html
文件还没有被添加到库中。(Git看到缓存目录中存在不可忽略的文件,但它仅报告目录。)要解决此问题,请确保已添加并提交index.html
文件:
git add *cache/index.html
git commit -m "Adding index.html files to the cache directories"
...,git status
然后您将看起来像:
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
nothing added to commit but untracked files present (use "git add" to track)
(显然,您确实也想提交.gitignore
。我只是对这个测试用例感到懒惰。)
在Windows和Mac上,如果要忽略当前目录中名为Flower_Data_Folder的文件夹,则可以执行以下操作:
echo Flower_Data_Folder >> .gitignore
如果是名为的文件data.txt
:
echo data.txt >> .gitignore
如果是类似“ Data / passwords.txt”的路径
echo "Data/passwords.txt" >> .gitignore.
我有类似的问题。我在Windows工具链上与Linux共享仓库一起工作,他们很高兴在给定的文件夹中创建具有相同名称(大小写除外)的文件。
这样做的结果是,我可以克隆存储库,并立即拥有数十个“修改过的”文件,如果我签入,将造成严重破坏。
我将Windows设置为区分大小写,而Git设置为不忽略大小写,但是它仍然失败(显然是在Win32 API调用中)。
如果我gitignore文件,那么我必须记住不要跟踪.gitignore文件。
但是我在这里找到了一个很好的答案:
http://archive.robwilkerson.org/2010/03/02/git-tip-ignore-changes-to-tracked-files/index.html