如何推送到分支中的特定目录?

时间:2018-07-12 16:47:58

标签: git directory push

我们的办公室目前已从TFVC切换到Git进行源代码控制,并且在此过程中破坏了我们的测试基础结构。我们以前在服务器上只有一个文件夹,然后可以确定在TFVC中需要检入的位置,然后在其中检入。但是,我在Git中遇到的问题是我们无法将一个文件夹映射到整个存储库,而且我似乎找不到找到推送到特定目录的方法(我们可以在该目录下保存约100个不同的标签)。

所以问题是:有没有办法将单个文件从一个目录(〜/ selenium / tempfolder)推送到完全不同的目录(〜/ testing / {功能或错误名称} / ...)?

编辑:所有这些操作都是远程完成的,而不是在本地客户端上进行的。 当前工作流程:

  1. 在服务器上临时创建文件

  2. 使用Microsoft.TeamFoundation.SourceControl.WebApi创建提交并推送到master(到SourceControl中的临时文件夹)

  3. 推送完成后,从服务器上删除文件和临时文件夹
  4. 手动将新文件移动到/ test需要移动的位置。

因此,很难执行cp或move之类的sys命令。我不在那台机器上,所以我无法运行它们,他们不希望我添加除一个临时文件夹以外的任何东西(如果可以帮助,则不要添加)。

编辑2:所以我基本上需要从创建文件的服务器上的C:/ ...推送到$ / dir / anotherdir / like5moredirs / testing / {feature}

在这里使用钩子可能会更有效...

感谢所有帮助!

1 个答案:

答案 0 :(得分:1)

对于Git来说,这是一个奇怪的工作流程,也许我不太了解您的需求。通常,您只需:

cp -R ~/selenium/tempfolder/<filename> ~/testing/{Feature or Bug name}/<filename>`
git add ~/testing/{Feature or Bug name}/<filename>`

也就是说,还有其他方法可以处理它,例如使用子仓库,您可以拉出它来运行测试,而无需拉出整个主仓库:

第1步

  • 在主存储库中,通过将以下内容添加到位于Git存储库根目录中的.gitignore文件中,将测试文件夹设置为忽略:

    testing/

现在,您的主存储库将不再跟踪您放入testing/中的任何文件。现在,您可以更改目录以进行测试并创建子仓库:

mkdir
cp -R ~/selenium/tempfolder/<filename> testing/<filename>
cd testing
git init
git remote add <testing repo url>
git add <filename>
git push origin master

完成上述命令后,您应该已经创建了测试目录并测试了Git子存储库,将文件从主项目复制到了单元测试目录,并将所做的更改推送到了测试子存储库。

这意味着,在测试服务器上,您只需要拉出测试分支,就可以轻松删除旧测试或添加新测试,而又不会在主存储库中丢失它们。这是我要使用的正常工作流程。