Git部分推送和部分拉动,到文件

时间:2016-01-25 07:40:06

标签: git git-diff

在我的项目中,我有许多分阶段文件,这些文件使用我的本地主机设置在许多地方进行内联配置,我不愿意将其推送到服务器。并且服务器文件具有外部服务器的设置,我不愿意这样做。

实际上,我正在寻找一种方法,我可以分别在服务器上部分地推送/拉出更改。

我想我在这里缺少一些处理Git的基本概念。所以,我将解释我现在如何管理事情:

我保留了两个相同项目的目录,一个用于与git( git目录)进行通信,以及我工作的其他目录(工作目录)。因此,每当我在准备提交的工作目录中进行更改时,我都会执行以下操作:

  • git目录中拉取服务器更改
  • 使用第三方工具(如Beyond Compare
  • )将工作目录 git目录进行比较
  • 在逐步比较时,我可以轻松解决任何合并冲突,并在 git目录工作目录中插入部分必要的代码。
  • 将新的 git目录更改推送到服务器。

优点:

  • 由于 git目录只有来自服务器的代码,因此不存在合并冲突的情况。
  • 我将对我的项目进行额外备份。
  • 可以轻松管理部分代码向/从服务器的推/拉。

缺点:

  • 需要管理两个目录中的代码,即 git目录工作目录
  • 有时将工作目录 git目录进行比较时,很可能会丢失一些要比较的文件。

我不知道我是否正确这样做,因为你可以看到我只使用git推送或拉动更改。
请让我知道我是否可以完全使用git,而不依赖于维护两个目录或使用Beyond compare之类的工具。

2 个答案:

答案 0 :(得分:1)

你的方法是明智的,因为它在非git文件夹中保留了潜在的合理信息(没有意外推送的风险)

一种可能更简单的操作方法:

当你从git服务器拉到git文件夹时,你可以开始逐步添加你的工作,从“工作”9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure(或la git add -p

诀窍是从git repo执行此操作,但将工作文件夹称为当前工作树(仅适用于add -p命令)

cd /path/to/git/repo
git --work-tree=/path/to/working add -p .

然后,您将决定以大块为单位添加什么。

答案 1 :(得分:0)

====================== 1月25日更新====================== ==
您可以为git存储库定义多个遥控器以进行拉/推。它就像
git remote add [name] [repo-url]一样简单 。

当登台和提交文件时,选择要推送到remote_one的文件,然后
git push remote_one branch_name

与remote_two和...相同的过程。拉动遥控器也是如此。看看this question

您可以创建 .gitignore 文件,以排除git不应跟踪的文件,例如配置文件。通常,大多数IDE都支持某种git插件,它可以根据您的项目类型创建此文件。有关详细信息,请查看at the git documentation.