git - 如何签出源文件少于当前提交的提交
问题描述
我正在开发一个 C++ 项目,它有一个主要任务和几个扩展任务,并使用 git 进行版本控制。在向其他人展示项目时,检查某个提交(标记为“主要”)以展示项目在主要任务完成时的状态很有用。这可以展示代码,但是我当前版本的项目的源文件不存在于“primary”中,因此在签出“primary”时它们不再存在。尝试构建项目会产生一个错误,抱怨缺少源文件,如底部所示。
添加到 git 的文件是 source_1.cpp、source_2.cpp、additional_source_file.cpp(不存在于 'primary' 中)和 header.h,并且大概 vs 有问题,因为 checkout 没有更新任何告诉项目要查找的源文件。
我想要解决这个问题,我需要在 git 跟踪的文件中至少再添加一个文件。这些是哪些文件,还是我误诊了问题?
我目前使用的解决方法是从项目中手动删除 additional_source_file.cpp,然后在我签出最近的提交时重新添加它。
这是错误:
错误 C1083 无法打开源文件:'........\a\b\project\additional_source_file.cpp':没有这样的文件或目录
解决方案
最初的答案有助于为我指明正确的方向。
我最初不知道有标准的 .gitignore 文件:我在 GitHub 网站上找到了 Visual Studio 的特定文件。据我所知,这不包括每次编译项目时都会更新的所有烦人文件。
更新 .gitignore 文件后,我在 git bash 中使用以下命令清除并重新添加 git 跟踪的文件。
git rm -r --cached .
git add .
这解决了问题,因为它添加了
构建/运行项目所需的所有文件
推荐阅读
- data-annotations - 支持使用现有 CNN 进行标注的图像标注工具
- sql - 使用绑定变量的jooq查询
- r - 是否有可以计算综合生物标志物反应(IBR)指数的 R 函数?
- typescript - 打字稿将“父键”推断为类型
- c++ - 在 gRPC 中使用 UDP
- c++ - 通过 cin.getline 函数输入一行时命令意外中止
- javascript - 一个组件内的多个html页面在角度
- ios - 我怎样才能让这个灰色区域消失(iOS UIKit)?
- python - 判断列表元素是否为日历月
- arrays - 如何在内部对象集合内的 MongoDb Compass 查询中执行大于运算符