我的代码结构如下
cpppen
|
|-c++11-features
| |
| |-async_task
|
| - async_task.cpp
| - CMakeFiles/
| - CMakeLists.txt
我想将CMakeFiles/
文件夹添加到.gitignore
中
由于某些原因,它似乎不起作用。
*.o
*.cbp
*.cmake
CMakeCache.txt
cmake_install.cmake
bin/
build/
CMakeLists.txt.user
**/CMakeFiles/
venv
**/.idea
CMakeScripts
Testing
Makefile
install_manifest.txt
compile_commands.json
CTestTestfile.cmake
cmake-build-debug/
c++11-features/async_task/async_task.exe
谁能指出为什么它没有忽略async_task
下的CMakeFiles
文件夹。我在.gitignore
中犯了什么错误?
发布于 2021-07-16 15:20:34
如果文件夹cpppen
是Git的根文件夹(带有文件夹.git
),它的工作方式应该与您在.gitignore
中编写(**/CMakeFiles/
)它的方式相同。但是还必须在那里创建.gitignore
(当然可以在任何子目录中,但通常/是默认的.gitignore
在git的根文件夹中)。
cpppen
.gitignore
...
如果你在之前的任何提交中跟踪了文件夹CMakeFiles
,你必须首先从Git中取消对这个文件夹的跟踪。使用以下命令执行此操作:
# Execute from Git root folder
git rm -r --cached c++11/async_task/CMakeLists
之后,您可以添加(git add .
)您的更改并提交(git commit -m "No longer tracking CMakeLists to include in gitignore"
)它们。现在您已经准备好推送(git push
),在此之后,您可以转到您的远程存储库,文件夹CMakeLists
将不再可见!
还有另一种方法(更专业/更清晰),即如何将文件夹CMakeLists
添加到.gitignore
中。
正如现在注意到的,(**/CMakeFiles/
) 存储库中具有此文件夹名的所有文件夹(CMakeFiles)都将被忽略。如果您突然创建了另一个同名的文件夹,但希望它在远程存储库中可用,该怎么办?因此,我将在.gitignore
中创建如下条目:
c++11/async_task/CMakeLists/
这就是如何定义只忽略所需的文件夹(在c++11/async_task
中为CMakeFiles
),而不忽略具有相同名称的任何其他文件夹。是一件可以让大不相同的小事 ;-)
https://stackoverflow.com/questions/68402491
复制相似问题