我团队中的每个开发人员都有自己的本地配置.该配置信息存储在一个文件中,该文件devtargets.rb在我们的rake构建任务中使用.不过,我不希望开发人员破坏对方的devtargets文件.
我的第一个想法是将该文件放在.gitignore列表中,以便它不会被提交给git.
然后我开始想知道:是否可以提交文件,但忽略对文件的更改?所以,我会提交一个默认版本的文件,然后当开发人员在本地机器上更改它时,git会忽略这些更改,当你执行git status或git commit时它不会显示在已更改文件列表中.
那可能吗?这肯定是一个很好的功能......
我有一个gitignore文件,使git忽略*.dll文件,这实际上是我想要的行为.但是,如果我想要一个例外(即能够提交foo.dll),我该如何实现呢?
有没有办法看到为什么一些文件被git忽略(即.gitignore文件中的哪个规则导致文件被忽略)?
想象一下,我有这个(或更复杂的场景,有数百个文件夹和数十个.gitignore文件:
/
-.gitignore
-folder/
-.gitignore
-subfolder/
-.gitignore
-file.txt
Run Code Online (Sandbox Code Playgroud)
如果我运行git add folder/subfolder/file.txtgit可能会抱怨它被忽略:
The following paths are ignored by one of your .gitignore files:
folder/subfolder/file.txt
Use -f if you really want to add them.
Run Code Online (Sandbox Code Playgroud)
有没有办法知道哪一个可能.gitignore有规则忽略这个文件,还显示规则?喜欢:
The following paths are ignored by your folder/.gitignore file (line 12: *.txt)
folder/subfolder/file.txt
Use -f if you really want to add them.
Run Code Online (Sandbox Code Playgroud)
要不就:
$ git why-is-ignored folder/subfolder/file.txt
folder/.gitignore:12:*.txt
Run Code Online (Sandbox Code Playgroud) 我正在使用Git进行Xcode 4项目版本控制.我明确地添加ProjectFolder.xcodeproj/project.xcworkspace/xcuserdata/myUserName.xcuserdatad/UserInterfaceState.xcuserstate了.gitignore,但是Git它不会忽略它.任何想法为什么会这样?
我的存储库中有一个现有的Visual Studio项目.我最近在我的项目下添加了一个.gitignore文件,我假设它告诉Git忽略文件中列出的文件.
我的问题是所有这些文件都已被跟踪,据我所知,Git不会忽略在将规则添加到此文件之前已被跟踪的文件以忽略它.
有人建议使用:git rm --cached并手动取消跟踪它们,但这将永远让我一个接一个地浏览它们.
我想删除存储库并重新创建它,但这次使用.gitignore文件,但必须有更好的方法来执行此操作.
我的存储库中有一些文件应该被忽略,我将它们添加到.gitignore中,当然,它们不会从我的存储库中删除.
所以我的问题是,是否有一个使用filter-branch的魔术命令或脚本可以重写我的历史记录并轻松删除所有这些文件?或者只是一个命令,它将创建一个将删除它们的提交?
我正在将此添加到.gitignore文件中
.idea/*
Run Code Online (Sandbox Code Playgroud)
但无论如何,状态是:
# modified: .gitignore
# modified: .idea/.generators
# modified: .idea/dovezu.iml
# modified: .idea/misc.xml
# modified: .idea/workspace.xml
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么 ?我甚至将.idea/*添加到全局〜/ .gitignore_global 但git状态,无论如何向我显示:
# modified: .gitignore
# modified: .idea/.generators
# modified: .idea/dovezu.iml
# modified: .idea/misc.xml
# modified: .idea/workspace.xml
Run Code Online (Sandbox Code Playgroud) 我想忽略我的存储库中的所有文件,除了bin子目录中出现的文件.我尝试将以下内容添加到我的.gitignore:
*
!bin/*
Run Code Online (Sandbox Code Playgroud)
然而,这并没有产生预期的效果:我在里面创建了一个新文件bin/,但git status仍在显示nothing to commit (working directory clean).
有什么建议?