使用 GIT 在本地服务器和实时服务器之间同步网站文件?

2023-12-26

假设我有两台 Web 服务器,一台是本地开发的,一台是实时的。

在 SVN 下,我会将网站文件检出到本地网络服务器的 public_html 目录以及实时网络服务器的 public_html 目录。然后,我将直接在本地服务器上处理文件,并将任何更改提交到中央存储库。

当我准备好让这些更改在实时服务器上生效时,我将通过 SSH 登录并执行 SVN 更新。

本质上,我有两个工作副本,一份是实时的,一份是本地的,尽管其他用户也可能在其本地计算机上有工作副本。但实时服务器上永远只有一份工作副本。这样做的原因是,每次我们想要发布更改时,我们都可以在实时服务器上执行 SVN 更新。

如何使用 GIT 完成类似的工作流程?


要对当前的工作流程进行几乎完全相同的建模,请执行以下操作:

  • 设置 git 存储库。
  • 在服务器和本地克隆存储库。
  • 本地工作
  • git 推送到 git 仓库
  • ssh 到服务器
  • git 拉。

另一种方法是在 git 中设置一个“生产”分支,有一个 cron 作业不断地在服务器上拉取该分支,然后在您想要发布您的内容时随时合并并推送到“生产”分支。变化。听起来您需要更具体的分支策略。

See: Git 流分支模型 http://nvie.com/posts/a-successful-git-branching-model/&&git flow cli 工具 https://github.com/nvie/gitflow

祝你好运!这是一个用 git 可以很好解决的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 GIT 在本地服务器和实时服务器之间同步网站文件? 的相关文章

  • 这种文件锁定方法可以接受吗?

    我们有 10 个 Linux 机器 每周必须运行 100 个不同的任务 这些计算机主要在我们晚上在家时执行这些任务 我的一位同事正在开发一个项目 通过使用 Python 自动启动任务来优化运行时间 他的程序将读取任务列表 抓取一个打开的任务
  • 使用os.execlp时,为什么`python`需要`python`作为argv[0]

    代码是这样的 os execlp python python child py other args this works os execlp python child py other args this doesn t work 我读过
  • cdc_acm:无法设置 dtr/rts - 无法与 USB cdc 设备通信

    我试图使用 pic24fj128gb206 枚举 usb cdc 设备 设备似乎已正确枚举 但是当我将设备连接到 Linux PC 时 我从内核收到以下警告消息 cdc acm 1 8 1 6 7 1 0 failed to set dtr
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设
  • ansible unarchive 模块如何查找 tar 二进制文件?

    我正在尝试执行一个 ansible 剧本 该剧本的任务是利用unarchive模块 因为我是在 OSX 上执行此操作 所以我需要使用它gnu tar 而不是bsd tar通常与 OSX 一起提供 因为BSD tar 不受官方支持 https
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser
  • 嵌入式 Linux – 部署固件更新的机制? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在考虑在 Yocto 项目上开发一个嵌入式 Linux 项目 一个工业应用程序 我有几个问题想问那些有嵌入式 Linux 经验的人 Y
  • 研究缓冲区溢出时应该使用哪些版本的 GCC 或标志?

    最近 作为计算机工程专业的本科生 我一直在研究缓冲区溢出 出于兴趣 我开始研究缓冲区溢出 但在尝试在我的计算机上用 GCC 4 9 1 在 Debian Jessie 中 编译的我自己的 C 程序中实现它们时遇到了困难 我听说较新的编译器中
  • 为什么我们应该在 git commit 命令中使用 -m ?

    git commit m my commit 我们使用此命令将提交添加到我的 Github 存储库 这个 m 是什么意思 Do a git commit help m是为了留言 这将出现在您的提交历史记录中 例子 git commit m
  • Cornerstone 与 Mac OS X 版本 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • gitbranch --merged 使用管道命令

    有没有办法达到相当于 git branch merged 使用 git 管道命令 我知道有类似的命令git for each ref它为您提供提交哈希值及其相应的引用名称 是否有一个命令可以判断某个提交是否可以从另一个提交访问 这基本上就是
  • 使用 git 将一系列小的合并从 master 压缩到我的分支中,同时保留对 master 的引用?

    我有一个非常复杂的合并要做 部分问题在于我浪费了太多时间 因此要纳入我的分支的更改量是巨大的 为了让事情变得更容易 我选择这样做git merge origin master 20 then git merge origin master
  • 何时用引号将 shell 变量括起来?

    我应该或不应该在 shell 脚本中用引号括住变量吗 例如 下列说法正确的是 xdg open URL eq 2 or xdg open URL eq 2 如果是这样 为什么 一般规则 如果它可以为空或包含空格 或实际上任何空格 或特殊字符
  • 在 git svn fetch 期间解压树对象时发生致命错误

    当运行 get svn fetch 从上游 svn 存储库提取最新的新分支时 我收到此错误 git svn fetch fatal failed to unpack tree object 5ecb324e8b8fcb918acb253f3
  • 来源和出口有什么区别?

    我正在编写一个 shell 脚本 以读取具有 key value 对的文件并将这些变量设置为环境变量 但我有疑问 如果我这样做source file txt是否会将该文件中定义的变量设置为环境变量 或者我应该逐行读取文件并使用导出命令设置它
  • 使用awk将列中的值替换为txt文件中的另一个值

    我是 Linux 和 awk 脚本编写的新手 我有 tab delim txt 文件 如下所示 AAA 134 145 Sat 150 167 AAA 156 167 Sat 150 167 AAA 175 187 Sat 150 167
  • 使用 cron 作业推送到 GitHub - 权限被拒绝(公钥)

    我已经创建了一个 SSH 密钥 如下官方教程 https help github com articles generating ssh keys 00 将其添加到 GitHub 并创建一个 Bash 脚本 用于提交单个文件并将其推送到我在
  • Ubuntu 的打包 - Web 应用程序

    Web 应用程序没有与 C 或类似文件不同的 make 文件 但是 它需要放置在特定的目录中 例如 var www 我是 Linux 打包新手 所以我的问题是 如何将我的应用程序打包到 deb 中 以便在安装时将其放入 etc myprog
  • 如何在Linux中自动启动需要X的应用程序

    我试图在系统进入运行级别 5 时自动启动 X 应用程序 这样做的正确方法是什么 我写了一个脚本并将其放在 etc init d 中 我已运行适当的 chkconfig 命令来设置 etc rcX d 目录中的符号链接 一切工作正常 除了当我
  • 如何在解决冲突的过程中提交长 Git 合并

    我正在进行一次大型合并 其中包含 300 多个冲突文件 我想使用 mergetool 来解决这些问题 但我不可能一次性完成这一切 我如何提交合并 然后返回并继续相同的合并 通常 如果索引中存在冲突 git 似乎不允许您提交 我假设 不能一次

随机推荐