如何使用git本地版本文件

时间:2016-03-08 08:42:48

标签: git egit tortoisegit

我有一个包含两个分支Rx-PlatformServicesfoo的项目。在这个项目中,我有一个配置文件baardatabase1.properties,其中存储了数据库属性,例如模式名称和模式密码。当我在foo分支上工作时,模式名称是foo,密码是foo,当我在baar分支时,模式名称是baar,密码是baar。如何告诉git这些属性文件仅适用于我的本地系统,不应该被推送到原始仓库?我使用egit和tortoiseGit。

2 个答案:

答案 0 :(得分:3)

使用单个分支,您无法阻止推送所选文件。

当分支被推送时,所有提交都将被推送到远程。

作为一种变通方法,您可以在其他分支(foo-localbar-local等)中进行更改(特定于本地),并且只要您希望在本地系统中进行这些更改,请使用git merge local-branch --no-commit --no-ff或类似命令合并到实际分支(这不会将您的本地特定更改合并到远程跟踪分支)。完成后,您可以放弃这些更改(但是这些更改将始终存在于本地分支中,并且可以随时应用于实际分支。)

答案 1 :(得分:1)

方式1 - 连续重新

假设有3个分支:

  • master公开
  • boo私人
  • baar私人

这样的事情:

The 2 branches

你在master分支上开发了一些东西,然后在master上重新设置了foo和baar分支。您需要(1)结帐foo,(2)重新基础foomaster,(3)结帐baar,(4)重新基础baar到主人,那么它将成为:

enter image description here

注意:必须一次又一次地重复这些步骤。

方式2 - 合并

假设相同的3个分支。

结帐foo,并将master合并到foo

enter image description here

baar分支上做同样的事情,最后你会得到:

enter image description here

在掌握了一些之后,再次执行这些步骤,并获得:

enter image description here

方式3 - 子模块

如果将所有分支推送到远程,上述两种方式有点危险。这种方式比较复杂,你需要知道如何使用子模块,但我更喜欢它。 :)

(1)准备私人数据库的数据仓库,您可以在foo / baar之间签出分支。

enter image description here

enter image description here

(2)准备另一个普通/简单的回购作为容器,如下所示:

enter image description here

enter image description here

(3)然后将该数据仓库作为子模块添加到此仓库中:

enter image description here

提交后你会得到这些:

enter image description here

enter image description here

(4)再次,将名为test的公共仓库添加为子模块:

enter image description here

enter image description here

现在,您可以在test个仓库中进行开发,并检查另一边的数据仓库分支。

注1 :需要很好地调整路径。

注意2 :如果你不喜欢子模块,你可以只使用一个文件夹作为容器,然后将这两个repo放入其中。

方式4 - 合并没有提交或壁球

正如this answer(由@Royal Pinto所说),我在这里展示了TortoiseGit操作。

enter image description here

enter image description here

注意:私有数据已经​​转入索引文件。这样下一个commit命令就会将它提交到repo。