【问题标题】:Is there a way to get this TFVC functionality in Git?有没有办法在 Git 中获得这个 TFVC 功能?
【发布时间】:2020-05-12 05:01:18
【问题描述】:

我们正在将我们的一个 .NET 应用程序从使用 TFVC 转换为 Git。例如,我们现在的一种做法是使用搁置集将我们的本地开发环境指向不同的数据库。

假设我在本地开发环境中,我想使用 QA 数据库。我拉下了一个搁置的“QA 点开发人员”。这将为我进行适当的连接字符串交换。完成后,我只需撤消搁置集中的更改并签入我的代码。

这是通过搁置集完成的原因是代码库是旧的、继承的和单一的,并且连接字符串被引用(和使用)约 30 次,无法设置转换(本地开发完全自定义并托管在本地 IIS 站点上。应用程序本身是使用自定义 powershell 脚本构建的)。

有没有办法在 git 中做类似的事情?我可以像浮动提交一样,而不是在 master 中,我可以临时拉入并撤消吗?我想我只是在描述一个搁置。或者在我需要更改环境时临时合并的某个远程分支上进行更改?

请注意,我了解唯一可行的选择可能是修改代码库以接受某种环境设置、合并连接字符串等,但到目前为止,这是一个巨大的提升,我想知道它是否无需进行更改即可这样做。

【问题讨论】:

  • 您可以在另一个分支的提交中进行此操作。然后,您将能够在不提交的情况下挑选提交,最终您将得到类似的结果。

标签: git tfvc


【解决方案1】:

仅出于本地目的,您可以使用称为 git stash 的类似功能,它允许您以补丁的形式保存本地修改并提供一些有用的命令来应用此补丁(您可以拥有多个具有不同描述的补丁并应用它们随意 - 请参阅链接文档)。

工作流程会是这样的:

git checkout master
# point project towards QA env...
git stash push -m "qa-env-patch"
# now you should have master back 
git stash list
stash@{0}: On master: qa-env-patch
...
git checkout dev.mybranch
# develop, develop, develop
git commit -a
# now ready to test, apply patch from stash
git stash apply 0
# fix bugs
git commit /only/files/or/chunks/that/have/nothing/to/do/with/qa/env
# done and happy, remove qa patch and put it back to stash
git stash push -m "qa-env-patch"
...

如果您需要远程的东西,我会使用一个分支并将其合并到功能分支,然后在工作完成后撤消该提交,然后再合并回 master。如果更改集是有限且恒定的,则它可能是可编写脚本的。

【讨论】:

    猜你喜欢
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 2020-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多