0

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

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

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

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

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

4

2 回答 2

0

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

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

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

  3. 使用强公钥加密。为您自己和应用程序生成公钥和私钥。使用您的私钥和应用程序的公钥加密您的密码,这样只有应用程序的私钥才能解密它。然后让项目维护者使用应用程序的私钥做一些安全的事情(但不要通过电子邮件或源代码控制将其提供给他们,除非它是安全加密的)。这样,您和您的应用程序就拥有了您的密码,并且没有应用程序的私钥,其他任何人都无法获得它。

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

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

于 2012-10-26T12:22:56.620 回答
0

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

  1. 将整个 repo 和工作目录复制到备份目录
  2. 在该备份目录中,选择我的最新分支,使用“git log -p”t0 找到第一个要摆脱的提交。
  3. git rebase -i ~1
  4. 在编辑器中将“pick”更改为“e”(“edit”),或删除该行以清除整个提交
  5. 按照说明从提交中删除任何不需要的数据。
  6. 交换备份目录和主目录。
  7. 现在,使用闪亮的新工作目录,创建任何需要的分支,从存储库的其他地方或新的备份目录中获取所需的文件。

希望这会对某人有所帮助。

于 2012-10-26T21:29:04.177 回答