2012-08-31 43 views
2

我使用Git扩展作为git GUI。Git与本地设置:更改分支冲突

在处理vs c#项目时,我需要保留许多设置文件。 我想创造当地的保留他们。

所以现在我的工作流程是这样的:

  1. 使真正的变化
  2. 当地设置分支机构
  3. 结帐
  4. 提交,推
  5. 结账回本地设置分支
  6. 调整基线当地分支机构

它工作正常,除非我对本地设置提交中更改的文件进行了更改。 如果我从本地分支结帐正在中止此文件的冲突。

我需要存储变化,结帐,应用存储,弹出存储。

有没有更好的方法呢? 我只需要在几个文件中保留少许更改。

回答

1

你为什么以这种方式使用分支?分支旨在保持特征分离,直到它们准备好被拉回到单个“主”分支中。如果你的项目有一堆与项目相关的设置文件,那就没问题,你可以把它们保存在master。如果您的设置是实验性的,那么您可以将它们复制到另一个分支,但是整个项目也应该在该分支中。

您的工作流应该是类似的。

  1. 做出实际更改。
  2. 提交更改。
  3. 重复。

当您准备好发布更改你的本地回购,那么你可以

  1. git pull
  2. 解决任何冲突(如果存在)。
  3. git push

编辑:也许,另一个工作是制定与其他部门的各种设置变化对master的主要项目,但在主拉定期为它的变化。

  1. git commit //当主人。
  2. git checkout debug
  3. git merge master //拉动主进入调试
  4. 测试改变和提交必要
  5. git checkout master

在这种情况下,主从不改变,并且不会受到在其他变化分支机构,但各分支机构可以随时掌握主人的变化。

+0

我有很多服务实例,每个实例都在不同的环境中使用,每个都有自己的设置。例如stable with debug = false,以及debug = true的实验。所以我想要改变稳定而不改变它的设置。 – Ari

+0

好的,看我的编辑。 – eternalmatt

+0

我不认为这会解决我的问题。我需要在没有特定提交的情况下推送更改。如果我有主人和稳定的实验分支,我不可能合并任何一对分支,因为我也会合并设置。 – Ari

0

您可以决定只通过git-cherry-pick合并特定的提交。如果你总是为你的设置改变(意思是提交只是改变设置,没有其他)提交单独的提交,你可以使用樱桃挑选合并所有提交,除了那些改变设置的提交。