I've been planning on using GIT for version control. However, I have a prolly stupid question in my mind.
Say I have a server with PHP configured and I am using it to develop websites that I can access by servername/website. Once I initialize git in that directory, it automatically creates a master repository. What if I create a few branches say (Branch1, Branch2) etc.
Once I make changes to Branch1, Branch2 etc ... how can I view the changes via a 开发者_开发知识库URL? When I go to sername/website, will it show me only the contents of what is present in the master branch?
Also if I remove a file by doing rm filename from one branch, I know it also deletes it from the server. However if I switch branches, I see that the file exists within that branch, but not on the server. That seems weird to me? How can I access a file that doesn't exist? (I am aware that git rm --cached, keeps the file on the server and only deletes it from the branch ... but I was curious, nonetheless ...)
Once I make changes to Branch1, Branch2 etc ... how can I view the changes via a URL? When I go to sername/website, will it show me only the contents of what is present in the master branch?
Yes, the server will show you the files that are checked out.
Also if I remove a file by doing rm filename from one branch, I know it also deletes it from the server.
It does not delete the file from the server, only that commit in that branch (and most probably the commits following in the same branch) do not reference that file anymore in the tree.
I am aware that git rm --cached, keeps the file on the server and only deletes it from the branch ... but I was curious, nonetheless ..
Not really, that deletes the file from the staging area in your current git setup (on the machine you are working on).
To come back to your original problem, you can probably setup some CGI script that would checkout a different branch for your website, but still every user accessing the same website will all see the same thing.
If you want a web interface to look at the changes you are making, you should look into git-php or something like that.
EDIT Since the answer to your comment is not short, I am adding here...
No ! Every branch is cloned and stored in the .git folder, you are checking out only one branch (or one commit) at a time. You "view" only one version of the code at a time, only everything in the repository is also stored on your computer in the .git folder.
One (easy way if you don't have too many branches) is to have as many clones as you have branches. Something like this :
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
精彩评论