Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
工作流:当基础应用程序更新时,如何在git中保存自定义设置?_Git_Version Control_Workflow_Upgrade - Fatal编程技术网

工作流:当基础应用程序更新时,如何在git中保存自定义设置?

工作流:当基础应用程序更新时,如何在git中保存自定义设置?,git,version-control,workflow,upgrade,Git,Version Control,Workflow,Upgrade,许多服务器上都安装了web应用程序。每台服务器都在基础应用程序之上包含一些自定义和配置,例如主题和自定义视图。当基本应用程序升级时,需要检查并可能更新定制 我想通过对应用程序进行git回购并提交定制来维护更改列表,但是如果需要更新基础应用程序并将定制迁移到新版本,我会怎么做 我可以检查提交列表以查看哪些文件已被更改,但我是否可以执行其他有助于此过程的操作 这将是我第一次使用git;到目前为止,我只使用了subversion。一种方法是在masters中维护基础应用程序,并在服务器分支中维护定制,

许多服务器上都安装了web应用程序。每台服务器都在基础应用程序之上包含一些自定义和配置,例如主题和自定义视图。当基本应用程序升级时,需要检查并可能更新定制

我想通过对应用程序进行git回购并提交定制来维护更改列表,但是如果需要更新基础应用程序并将定制迁移到新版本,我会怎么做

我可以检查提交列表以查看哪些文件已被更改,但我是否可以执行其他有助于此过程的操作


这将是我第一次使用git;到目前为止,我只使用了subversion。

一种方法是在masters中维护基础应用程序,并在服务器分支中维护定制,以便分支
master
服务器a
服务器b

然后,当您发布新版本时,您可以在master中的新版本上创建服务器分支(
git checkout server\u a
然后
git rebase master
),进行必要的更改(解决冲突,进行调整)并将每个服务器分支发布到相应的服务器(
git push server\u a server\u a\u repository

分支看起来像:

   H sever_a
  /
-A-B-C-D-E-F-G- Master
 \
  I server_b      
重基

               H' sever_a
              /
-A-B-C-D-E-F-G- Master
              \
               I' server_b  
从git rebase页面:

它的工作原理是转到两个分支的共同祖先(您所在的分支和您正在重定的分支),获得您所在分支的每个提交引入的差异,将这些差异保存到临时文件,将当前分支重置为与您正在重定的分支相同的提交,最后依次应用每个更改。图3-29说明了这一过程


因此,基本上它会尝试应用您的自定义提交(
H
I
),就好像它们是在新提交
G
之后进行的一样。它完全是通过手工操作来实现的(在应用自定义设置之前,获取在master上所做的所有更改并将其压入,向您显示在过程中发现的任何冲突)。

这听起来很棒!我必须在实践中尝试一段时间,以掌握它的窍门,但它确实听起来像我想要的。谢谢