2010-12-04 42 views
1

我一直在计划使用GIT进行版本控制。然而,在我的脑海里,我有一个愚蠢的问题。如何通过URL访问我的git存储库中的分支机构?

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

一旦我对Branch1,Branch2等进行了更改...我如何通过URL查看更改? 当我去sername /网站时,它会告诉我只有主分支中存在的内容吗?

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

回答

1

一旦我对Branch1进行了更改, Branch2等...我如何查看通过URL更改 ?当我去 sername /网站,它会告诉我只有 什么是目前在 主分支的内容?

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

另外,如果我从一个分支做RM 名删除一个文件,我知道这 也删除它从服务器。

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

我知道的git RM --cached,保持 文件在服务器上,只有 从分支中删除......但我 很好奇,但是..

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

为了回到原来的问题,你可以设置一些CGI脚本来为你的网站检出一个不同的分支,但是仍然每个访问同一网站的用户都会看到同样的东西。

如果你想要一个web界面来查看你正在做的改变,你应该看看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 
+0

“要回到你原来的问题,你也许可以建立一些CGI脚本,将检出不同的分支为您的网站,但还是每个用户访问相同的网站都将看到同样的事情“。 ...马特,你能详细说明一下吗?我很困惑。所以,当你说服务器会告诉我什么文件,我结帐。这些文件是哪些?每个分支都需要“检出”吗?理想情况下,我希望能够通过URL访问项目的每个分支,如果可能的话...... – g1t 2010-12-04 01:55:20

相关问题