我使用以下命令检出从一个分支到另一个分支的文件夹:
git checkout master foldername
它从主服务器到当前分支机构获取文件夹的更新,但是当它们从主服务器中删除时,它不会删除当前分支中的文件。 我不想合并整个分支。有没有办法删除当前分支中的文件夹中的所有文件,除了手动逐个删除它们之外?
背景:
最近,我们将一百多个项目从CVS存储库迁移到GIT存储库。 我们在git-master(dev),qa,pt,prod中创建了四个分支,以指示不同环境的代码。 为了将一个项目的代码从一个环境移动到另一个环境而不合并其他环境,我们切换到目标环境,然后使用以下代码从源环境中检出文件夹名称:
git checkout qa
git checkout master foldername
它会检查更新的文件。但我们发现,当它们从源分支中删除后,它不会删除目标分支中的文件。我们不能让它只是合并整个分支,因为可能有部署到开发但尚未准备好进行QA的项目。 我想这可能不是一个很好的方法将一些项目放在一个存储库中,但由于项目很多而且很多项目相互依赖,因此将它们分开是件可怕的。
答案 0 :(得分:0)
您可以使用foollowing命令
删除文件 rm <path-to-file>
然后在提交之前,您需要执行以下操作
git rm <path-to-file>
然后,git add然后提交。
将这些更改推送到远程,以反映您在本地所做的更改。
答案 1 :(得分:0)
对于索引/工作树管道,请从git read-tree
开始。查看git checkout-index
以获取专门的工作树操作(以及git update-index
用于专门的索引操作)。
git read-tree -um --prefix=foldername master:foldername
取决于您的意思&#34;更新&#34; - 此变体是批量替换,但您可以通过为其提供更多树来让read-tree
传播或组合相对于基线的更改。