如何通过URL访问我的git存储库中的分支?

时间:2010-12-04 01:04:08

标签: git branch

我一直在计划使用GIT进行版本控制。但是,我脑子里有一个愚蠢的问题。

假设我有一个配置了PHP的服务器,我用它来开发我可以通过servername / website访问的网站。一旦我在该目录中初始化git,它就会自动创建一个主存储库。如果我创建一些分支说(Branch1,Branch2)等

,该怎么办?

我对Branch1,Branch2等进行了更改...如何通过URL查看更改? 当我去sername / website时,它只显示主分支中的内容吗?

此外,如果我通过从一个分支执行rm文件名来删除文件,我知道它也会从服务器中删除它。但是,如果我切换分支,我看到该文件存在于该分支内,但不在服务器上。这对我来说似乎很奇怪?如何访问不存在的文件? (我知道git rm --cached,将文件保存在服务器上,只将其从分支中删除......但我很好奇,但是......)

1 个答案:

答案 0 :(得分:1)

  

一旦我对Branch1进行了更改,   Branch2等......我该怎么看?   通过URL更改?当我去   sername / website,它只会显示给我   的内容是什么   主分支?

是的,服务器会显示已签出的文件。

  

此外,如果我通过执行rm删除文件   一个分支的文件名,我知道   也会从服务器上删除它。

它不会从服务器中删除该文件,只有该分支中的提交(并且很可能是同一分支中的提交)不再在树中引用该文件。

  

我知道git rm --cached,keep   仅限服务器上的文件   将它从分支中删除......但是我   很奇怪,但是..

实际上,这不会从当前git设置(在您正在使用的计算机上)的暂存区域中删除该文件。

回到原来的问题,您可以设置一些CGI脚本来检查您网站的不同分支,但仍然访问同一网站的每个用户都会看到相同的内容。

如果您希望网络界面查看您正在进行的更改,您应该查看git-php或类似内容。

编辑由于评论的答案不短,我在此处添加......

不,不!每个分支都被克隆并存储在.git文件夹中,您一次只能检出一个分支(或一个提交)。您一次只“查看”一个版本的代码,只有存储库中的所有内容也存储在.git文件夹中的计算机上。

一个(如果没有太多分支,简单方法)就是拥有与分支一样多的克隆。像这样:

www
|-- branch1
|   |-- .git
|   |   |-- config
|   |   `-- other-git-object
|   `-- index.html
|-- branch2
|   |-- .git
|   |   |-- config
|   |   `-- other-git-object
|   `-- index.html
`-- master
    |-- .git
    |   |-- config
    |   `-- other-git-object
    `-- index.html