[英]Compiling workflow with version control
到目前为止,我已经将版本控制用于基本的基于Web的项目,这些项目实际上没有编译阶段。 我现在分叉了一个相对较大的项目,该项目遵循标准的“./configure; make; make install”模式。 我不确定这类项目的正确工作流程。
如何处理编译过程中创建的所有文件?
git add .
如果是这样,我该如何清理呢? 显然这是每个处理已编译代码的人,所以我确信有一个可接受的模式,我还不熟悉它。
我同意ChrisF,不要将构建生成的二进制文件存储在您的存储库中。 你的目标应该是拥有一个漂亮的.gitignore文件,以便在任何时候运行git status
都不会显示“未跟踪的文件”。 这意味着git要么忽略所有文件,要么跟踪所有文件。
我用来构建我的.gitignore的一个过程是这样的:
添加并提交所有源项目(在构建任何内容之前)
cd project
git add .
git commit -m'initial import'
添加将被忽略的简单文件模式.gitignore ; 这包括* .o,* .so等。
echo '*.o' > .gitignore
echo '*.so' >> .gitignore
然后我运行构建。
make
然后我跑了
git ls-files -o >> .gitignore
这将获取您未使用glob模式指定的任何未完成文件。
-Bart
要清理工作目录,可以使用git clean
。 除非您指定-f
(强制)标志,否则默认情况下不会造成任何伤害。
命令行git clean -xfd
将删除工作目录中的所有内容,而不是版本控制中的内容。
简单的策略是将make输出存储在另一个目录中,例如build,然后忽略该目录。 您可以像这样配置它:
mkdir build && cd build && ../configure
您不应将中间或输出文件置于源代码管理之下。 如果你这样做,你必须检查它们,以便在每次编译和构建解决方案时使文件可写。
您没有说出您正在使用的IDE(如果有) - 请检查它是否可以将项目添加到源代码管理中。 如果它可以使用此选项,因为它只会添加绝对需要的那些文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.