【问题标题】:CMakeLists folder is not getting ignored with .gitignore.gitignore 不会忽略 CMakeLists 文件夹
【发布时间】:2021-09-24 20:58:32
【问题描述】:

我的代码结构如下

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 中犯了什么错误

【问题讨论】:

  • 请记住,如果您已将文件添加到索引(或提交),.gitignore 将不适用
  • @o11c - 我该如何解决?从 git 中删除文件?
  • git rm --cached
  • @o11c - 没有帮助。我试过了。

标签: c++ c++11 cmake gitignore


【解决方案1】:

如果文件夹 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),而不忽略任何其他同名文件夹。是一件小事,可以产生大不同 ;-)

【讨论】:

    猜你喜欢
    • 2021-09-29
    • 1970-01-01
    • 2016-12-25
    • 1970-01-01
    • 1970-01-01
    • 2022-11-16
    • 2018-05-02
    • 1970-01-01
    • 2018-01-12
    相关资源
    最近更新 更多