2015-10-16 116 views
3

我正在编写一个C++应用程序,该应用程序在source目录中有源文件,其中有一个build目录。 build目录包含Makefile,所以当我从构建目录构建程序时,我这样做了。Git:在未跟踪的构建目录中使用Makefile

我想git忽略build目录,因为它不包含源文件。但是,我确实想要git来跟踪Makefile。跟踪Makefile但忽略其他构建文件的最佳做法是什么?我应该使用另一个目录结构吗?

谢谢!

回答

6

通知Git来忽略某些.gitignore中的文件通过将!预先加入到一个模式中。所以,你可以把一个文件.gitignorebuild目录中有这样的内容:

# Ignore everything in this directory 
* 
# Except this file and the Makefile 
!.gitignore 
!Makefile 

要给予信贷,我认为信用是因为,this可能是我第一次了解了这些异常。

+0

啊,我一直在使用我的根级.gitignore来忽略整个构建目录,所以我无法告诉git不要忽略构建目录中的Makefile。单独的.gitignore文件为我解决了这个问题。 –

3

忽略规则只是文件git不知道的,你也可以通过指定它的名字git add任何文件。

所以,仅仅混帐添加Makefile文件,并添加无视规则,无视建/

你可以放置一个.gitignore文件build/与模式*

+0

虽然这个回答完全正确,但它没有解决Makefile意外删除的问题,如果提交,这会使得在后续提交中再次添加它变得更加困难。最好明确一点,并使用.gitignore异常。 – SirDarius

+0

呃...你可以像命令行和图形用户界面一样添加任何其他文件。 –

相关问题