Git的新手,试图了解如何让VS与Git一起工作。 VS为您创建的每个项目创建一个目录,然后将新创建的实体放在该目录中。 将现有实体添加到项目VS时,将其复制到项目目录。 似乎Git永远无法管理您的源文件,因为VS正在创建副本。
实施例。目录结构 - C:\ MRepo,包括.git和src子目录 src包括V1.0.0 Rpt1.rdl和Rpt2.rdl
我需要在FeatureA上工作,所以我为FeatureA和checkout FeatureA创建了一个分支。 FeatureA将对Rpt1.rdl进行更改。 我首先创建一个新的VS项目,并将其命名为FeatureA,创建目录C:\ MRepo \ FeatureA。因为我正在修改Rpt1.rdl I"添加现有的"并指向Rpt1.rdl。这会导致副本放在C:\ MRepo \ FeatureA中。我现在有C:\ MRepo \ Rpt1.rdl和C:\ MRepo \ FeatureA \ Rpt1.rdl
这看起来并不理想,Git我相信我们想要一个单一的源文件,它会保存创建的各个更改。在分支机构中,我们希望看到在分支机构中进行的相关更改,即 检查FeatureA分支时,我们应该只看到在FeatureA分支内进行的修订。
有人可以对此有所了解吗?真的很想利用Git进行源代码控制,然后最终希望开发一个包含发布过程的工作流程。
更新:感谢您的回复,这让我重新思考了我的提问。我意识到我的问题实际上是关于如何在Git源代码控制下使用VS项目。 在创建一个包含单个项目,报表文件和提交更改的简单示例后,我创建了一个分支" FeatureA"。切换到FeatureA并更改我提交的报告文件。在FeatureA和Master之间切换报告文件正确地反映了更改或缺少。 在过去,我使用了各种VS项目来与功能对齐,因为每个项目都使用项目名称创建自己的目录,我需要弄清楚多个项目如何共享同一个源目录。
答案 0 :(得分:1)
您好@bartl请不要将文件夹/目录与git分支混淆。 它完全不同的工作流程。
您可以将分支视为不同的功能;从主工作创建功能分支,在该功能分支上进行提交(这很重要,否则你将把这个功能带到其他分支上并使事情变得更糟)。
为特定功能提交后,您可以自由移动到任何分支,并为其他功能重复上述步骤。
这里需要注意的一点是,当你移动到其他分支/ feature_brances时,代码结构可能会根据功能而改变。
此外,关于#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQmlProperty>
#include <QStandardItemModel>
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
if (engine.rootObjects().isEmpty())
return -1;
QStandardItemModel model;
for (int i=0; i<100; i++) {
QStandardItem* item = new QStandardItem(QString("%1").arg(i,2,10,QChar('0')));
model.appendRow(item);
}
QObject *obj = engine.rootObjects().first()->findChild<QObject *>("gv");
QQmlProperty::write(obj, "model", QVariant::fromValue(&model));
return app.exec();
}
,仅当您尚未在根项目中的多个目录/子目录中初始化git repo时,它才应出现在主项目根目录中。
我建议您在实际使用之前先阅读this非常互动的教程,了解git的基础知识,以便开始享受GIT。
快乐的编码。
答案 1 :(得分:0)
你不应该&#39;创建一个文件夹FeatureA
。只需编辑src
文件夹中的报告文件即可。当时机成熟时,Git将能够将更改合并回主分支。