1

一些信息:

  • 在 CentOS 5.6 64 位上运行 Apache 2.2.3(不知道 Apache 版本是否与此处相关)
  • 安装了 Git
  • 这是一个 VPS,所以我拥有我需要的所有访问权限

我有一个现有网站(位于/home/username/public_html/)和该网站的开发版本(位于/home/username/dev/)都在同一台机器上。

我直接在开发版本上工作(实际上在本地工作,但使用 Sublime Text 2 的 SFTP 插件在保存时自动上传,所以出于所有意图和目的,我可以被认为是直接在 /home/username/dev 上的文件工作/)。

我想做的是使用 Git 将更改从 dev 推送到 live。目前,我必须跟踪哪些文件被编辑,然后是 FTP 或手动复制它们。如果事情不顺利,我希望能够恢复更改,诸如此类。

但是,我以前从未使用过 Git(或任何类型的版本控制)。我一直在谷歌上搜索 Git 教程,但我发现的所有内容都假设与我的实际设置有所不同。最主要的是大多数教程都假设全新的项目。我害怕通过尝试为它设置一个 repo 来搞乱我的实时网站。

无论如何,我的问题是:如何使用我现有的文件夹创建一个存储库,我可以从 /home/username/dev/ 推送到 /home/username/public_html/ (反之亦然)?

4

2 回答 2

1

我最终遵循了本教程,它完全符合我的要求。

于 2012-09-13T19:54:20.537 回答
0

假设您的实时版本来自您的开发版本的某个版本,您可以将所有内容放入 git 存储库中

  • 复制您的实时代码

    $ cp -axf /home/username/public_html/ git_repo
    
  • 将所有内容置于 git 版本控制之下

    $ cd git_repo
    $ git init
    $ git add .
    $ git commit -m 'Initial import from live version'
    
  • 现在从 dev 版本复制所有文件并将它们放在devgit的分支上

    $ rm *
    $ cp /home/username/dev/* .
    $ git checkout -b dev
    $ git add .
    $ git commit -m 'Initial import from dev version'
    

之后,您的实时代码将master位于存储库中的分支上,而开发代码位于 branch 中dev

如果你完成后总是把从开发到生活的所有东西都放在生活中,你可以在完成后将你的分支合并dev到你的master分支(保存你的实时代码)中,从而在 git 中实现这一点。

您的实时版本可能是master分支中该存储库的克隆,而部署只是一个

$ git pull

那里。

于 2012-09-12T20:40:17.333 回答