Git回购:将我的烂摊子整理成整齐的树枝

时间:2012-10-26 11:07:25

标签: git branch

我想玩一个项目,所以git克隆了它,并按照其说明为我的配置创建了一个本地分支(我想这样用户可以合并更新)。

起初我只是根据自己的喜好进行调整,所以我没有打扰任何进一步的分支,但现在我有一些代码可能对其他人有用,但我的密码等在同一分支中。

实际上,我有一个我想拥有的大分支:

  • Postgres后端(默认)但我添加了一些新代码
  • MySQL后端(我做过的最大改变)使用相同的新代码
  • 我的设置:我不能忽略设置文件,因为我偶尔需要添加新功能的部分,但我需要将我的个人设置保留在公共分支之外!我想这最适合作为本地分支。 好的。修正了这一点但主要问题仍然存在。
  • 开发分支,我将从MySQL分支。

从头开始,我想我可以弄清楚如何分支/合并各种更新,但是有一种 easy 方式来遍历现有的repo并选择要应用于哪个分支的提交?或者可能从上游点创建一个分支然后合并回来,不包括某些提交?

2 个答案:

答案 0 :(得分:0)

我挂断了“把我的密码放在源代码管理中”评论。以下是一些避免这样做的想法,按优先顺序递减:

  1. 如果您的程序并非绝对需要最基本功能的密码,请将其存储在密码管理器(例如KeePassX)中,并在启动时将其剪切并粘贴到您的实时运行程序中。

  2. 将其作为环境变量存储在服务器上,让程序读入。每个操作系统都有环境变量,这样每个服务器上都有不同的密码。

  3. 使用强大的公钥加密技术。为自己和应用程序生成公钥和私钥。使用您的私钥和应用程序的公钥加密您的密码,以便只有应用程序私钥才能解密。然后让项目维护者使用应用程序的私钥做一些安全的事情(但是除非它是安全加密的,否则不通过电子邮件或源代码控制发送给他们)。这样,您和您的应用就拥有了您的密码,而且没有应用的私钥,没有其他人可以获得它。

  4. 如果以上都不可能,您可以使用平面文件执行#2,并在安装时手动填写密码。

  5. 如果以上所有工作都太多,您可能没有安全的应用程序。考虑完全取消密码并公开你正在保护的内容。

答案 1 :(得分:0)

好的,我咬紧牙关。简而言之:

  1. 将整个仓库和工作目录复制到备份目录
  2. 在该备份目录中,选择了我的最新分支,使用“git log -p”t0找到第一个提交去除。
  3. git rebase -i~1
  4. 在编辑器中将“选择”更改为“e”(“编辑”),或删除该行以清除整个提交
  5. 按照说明从提交中删除任何不需要的数据。
  6. 交换备份和主目录。
  7. 现在,通过闪亮的新工作目录,创建任何所需的分支,从您的仓库中的其他位置或从新的备份目录中获取所需的文件。
  8. 希望这会对某人有所帮助。