我一直在计划使用GIT进行版本控制。但是,我脑子里有一个愚蠢的问题。
假设我有一个配置了PHP的服务器,我用它来开发我可以通过servername / website访问的网站。一旦我在该目录中初始化git,它就会自动创建一个主存储库。如果我创建一些分支说(Branch1,Branch2)等
,该怎么办?我对Branch1,Branch2等进行了更改...如何通过URL查看更改? 当我去sername / website时,它只显示主分支中的内容吗?
此外,如果我通过从一个分支执行rm文件名来删除文件,我知道它也会从服务器中删除它。但是,如果我切换分支,我看到该文件存在于该分支内,但不在服务器上。这对我来说似乎很奇怪?如何访问不存在的文件? (我知道git rm --cached,将文件保存在服务器上,只将其从分支中删除......但我很好奇,但是......)
答案 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