在 git 中推送部分文件更改

问题描述 投票:0回答:3

我正在尝试弄清楚如何将部分文件更改从本地 git 存储库推送到 tfs git 项目。

对于一些背景,我有一个使用外部 wsdl 的项目。我的计算机上有一个 wsdl 的本地开发实例,生产应用程序将在托管于不同服务器上的 wsdl 生产版本上运行。我的本地 git 存储库中的项目指向我的本地开发 wsdl,tfs 中的生产项目指向远程托管的 wsdl。

我的问题是,当我将代码更改从本地开发存储库推送到 tfs 存储库时,我不希望与开发 wsdl 的连接随更改一起推送。我的最终目标是能够进行代码更改、错误修复等,并将这些内容推送到 tfs 存储库,而无需更改任何生产配置。

我可能会错误地处理这个问题,但找出解决这个问题的最佳方法就是我来这里的原因。开发人员通常使用特定的程序来处理这种情况吗?

git visual-studio-code tfs
3个回答
0
投票

由于分支之间有不同的配置文件,因此当您执行合并时,会出现冲突。对于这种情况,您可以检查合并策略

您还可以使用 Git 属性来告诉 Git 使用不同的合并 项目中特定文件的策略。一个非常有用的选项 是告诉 Git 不要尝试合并特定文件 冲突,而是使用你这边的合并而不是某人 别人的。

如果项目中的分支出现分歧或正在发生变化,这会很有帮助 专业化,但您希望能够将更改合并回来, 并且您想忽略某些文件。假设你有一个数据库设置 名为

database.xml
的文件在两个分支中不同,并且您 想要合并到你的其他分支而不弄乱数据库 文件。您可以设置这样的属性:

database.xml merge=ours

然后定义一个虚拟

ours
合并策略:

$ git config --global merge.ours.driver true

如果你合并到另一个分支,而不是发生合并冲突 使用

database.xml
文件,您会看到类似这样的内容:

$ git merge topic
Auto-merging database.xml
Merge made by recursive.

在这种情况下,

database.xml
保留在您最初的版本 有。

.gitattributes
- 是存储库的根级文件,用于定义子目录或文件子集的属性。


0
投票

这里有一些建议也许你可以尝试一下:

  1. 尝试对您的存储库使用
    .gitignore
    来忽略您不想推送的文件。
  2. 如果要推送的文件不是太多,一般只有几个文件,可以使用 git add 命令将这些文件添加为推送文件。

例如:

git add path/to/file1 path/to/file2 path/to/file3
git commit -m "commit message"
git push

在此示例中,仅文件

path/to/file1
path/to/file2
path/to/file3
将被推送到远程存储库。

  1. 如果需要推送的更改文件较多,可以尝试以下步骤。
  • 确保本地存储库已与远程存储库保持同步。如果没有,请使用
    git pull
    git fetch
    命令更新本地存储库。
  • 将本地存储库复制到存储库目录之外的另一个目录中的临时文件夹。
  • 更改临时文件夹中的代码。
  • 使用一些工具,例如Beyond Compare,提取要推送的更改文件。
  • 将提取的文件复制到本地存储库以覆盖原始文件。
  • 提交并推送更改的文件。

0
投票

你可以安装“commit groups”vs code插件,这可以让他上传分组的文件

© www.soinside.com 2019 - 2024. All rights reserved.