有没有办法看到为什么一些文件被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 submodule update docs):
...将使子模块HEAD分离,除非
--rebase或--merge指定...
怎么--rebase/ --merge改变事情?
我的主要用例是有一堆中央存储库,我将通过子模块嵌入到其他存储库中.我希望能够改进这些中央回购,直接在他们的原始位置,或从他们的嵌入回购(通过子模块使用它们的那些).
您是否可以在仅适用于该目录中的文件(和目录)的目录中创建.gitignore文件?
https://github.com/github/gitignore上有一组有用的.gitignore文件
.每个忽略文件都有一个扩展名,例如Java.gitignore,vim.gitignore.当我将这些文件直接放入workdir时,它们不起作用..gitignore
是否有必要创建单个文件.gitignore并将组成文件合并到其中?
因此,在使用--global .gitignore文件时,配置似乎指向单个文件.例如,如果我想.gitignore在Global /目录中应用所有文件,我应该手动将它们合并到一个文件中吗?如果是这样,使用"官方"集合保持此合并文件最新是额外的工作.
重申一下,我承认我们可以.gitignore在不同的目录中使用不同的文件,但这不是我想要的.我想.gitignore在一个目录中应用多个文件.
我的应用程序托管在Heroku上,我也有一个公共github repo.
我的应用程序有一个包含我的amazon S3凭据的配置文件.确保文件被推送到heroku而不是github是很重要的.
所以我想我可以将我的主分支推送到heroku并创建一个单独的github分支,并确保它的.gitignore文件引用我的s3.yml文件.然后我可以做"git push origin github:master"将github分支推送到github.com
这适用于第一次提交.
但后来我切换到我的主分支,写了一些很棒的代码,然后将它全部推送到heroku.然后我切换回我的github分支并执行"git merge master",以便将新代码添加到其中.但这会导致master分支中的s3.yml和gitignore文件被复制到github分支中.提示从头到桌敲打会议.
是否有任何关于如何保持分支同步,同时确保未跟踪文件保持未跟踪的建议.我可以告诉git不要合并不需要的S3.yml文件和不同的.gitignore文件吗?
我在这里鞭打一匹死马吗?我无法证明支付私人github账户的合理性,但我想这个答案将涉及做到这一点....或者转换为projectlocker
我希望这个问题仅仅取决于我的垃圾技巧,并且有一种方法......提前感谢
编辑:::接受的答案是一个很好的解决方案,但我刚刚发现了一个我更喜欢的新解决方案.在这里阅读它:http://docs.heroku.com/config-vars- Heroku的那些聪明的人有一个答案的一切......真是太棒了
我在一个文件夹中有两个 git 存储库。我能够重新.git定位目录并使用--git-dir=/path/to/.git和来处理两个存储库--work-tree=/path/to/code。但是,我找不到任何重新定位.gitignore文件的选项,该文件当前位于存储库的根路径中,并且它们都被考虑。我也考虑过使用-c <.gitignoreOptionWhichIDontKnow>="/path/to/.gitignore"但找不到任何选项来重新定位我的 .gitignore 文件。
是否可以重新定位 .gitignore 文件?