gpt4 book ai didi

git - 如何同步 git-svn 存储库

转载 作者:太空狗 更新时间:2023-10-29 13:39:19 26 4
gpt4 key购买 nike

过去三周我一直在使用 git-svn。

目前我的工作流程是这样的。

  1. ssh 进入我的开发箱,
  2. 在那里创建/编辑/删除文件(git svn rebase,git checkout -b topic branch)
  3. 检查网络应用是否正常运行。
  4. 提交到 svn。(git rebase master,git checkout master,git merge topic branch,git svn dcommit)

问题

  1. 此工作流程非常容易在开发箱 (ssh) 上进行快速编辑。但随着远程编辑加类变得缓慢,它变得困难。
  2. 注意:我无法在我的本地机器上设置我的网络应用程序的精确副本(因为它从各种来源和许多其他配置中提取数据)

我想要的是在本地编辑文件,将文件移动到服务器,测试,提交。

什么是好的工作流程?

我之前的尝试包括,

  1. 本地编辑文件,scp文件,测试,dcommit
  2. 在本地编辑文件,与开发框 rsync,测试,dcommit
  3. 在本地编辑文件,git push 到 dev box,测试,dcommit(git pull 从本地 box 到 dev box 是不可能的,因为本地 box 在路由器后面)

我还没有尝试最后一步,因为 git-svn 提到如果您使用的是 git-svn,从另一个 git 存储库中推送/pull/merge 是危险的。

您能否通过示例命令建议一些有效的工作流程?

谢谢

最佳答案

我可能遗漏了一些东西,但我认为 git svn 文档中的警告不适用于我在下面建议的工作流程。 (顺便说一句,我假设您很乐意仅从开发箱中 git svn dcommit。)

  1. 将存储库从您的开发箱克隆到您的本地机器上。假设您随后在本地创建了一个名为 excellent 的新主题分支。你在那个新分支上做一些工作。

  2. 现在您想在开发箱上测试它,但要避免推送到非裸存储库时出现问题,您可以使用一种技术 suggested in the git FAQ您直接推送到 refs/remotes/ 下的 ref。例如,您可能会这样做:

    git push origin excellent:refs/remotes/from-desktop/excellent
  3. 现在您应该登录到开发箱。然后,您可以根据刚刚使用 git checkout -b excellent from-desktop/excellent

  4. 推送的 ref 创建一个新分支
  5. 您可以像处理示例中的主题分支一样处理此分支,如果您对此感到满意,请确保在执行 git svn dcommit 之前仍然执行相同的顺序,即 git rebase mastergit checkout mastergit merge excellentgit svn dcommit

我不明白为什么该工作流会在 git svn 中产生问题,因为在执行git svn dcommit.

关于git - 如何同步 git-svn 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5310849/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com