Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git分支存储在哪里?_Git_Github_Branch - Fatal编程技术网

Git分支存储在哪里?

Git分支存储在哪里?,git,github,branch,Git,Github,Branch,我在一个网站上工作,不断地从开发模式(代码中的每个URL都指向localhost,数据库名为“project”,用户名为“root”,空密码等)切换到生产模式(所有设置都在我的主机上工作,真实密码,真实URL等),我最近才开始使用 现在,我想做一个分支,为代码准备好上传到我的主机,所以我不必做一个副本,并手动更改一切,每次我想更新我的网站。因此,如果我更改代码并在master分支中提交,它将反映在上传代码中,而不更改其他内容 因此,这将是: Master -> ReadyForUpload

我在一个网站上工作,不断地从开发模式(代码中的每个URL都指向localhost,数据库名为“project”,用户名为“root”,空密码等)切换到生产模式(所有设置都在我的主机上工作,真实密码,真实URL等),我最近才开始使用

现在,我想做一个分支,为代码准备好上传到我的主机,所以我不必做一个副本,并手动更改一切,每次我想更新我的网站。因此,如果我更改代码并在
master
分支中提交,它将反映在上传代码中,而不更改其他内容

因此,这将是:

Master -> ReadyForUpload
所以我的问题是,当使用Git时,是否每个分支都像一个目录一样存储在物理存储中,每个文件都在其中?是否可以将分支导出到目录


顺便说一句,我使用的是Windows。

不是。其他一些版本控制系统(如Subversion)将分支存储为子目录。在git中,您有一个工作区域,并在其中更改您的工作分支

例如

似乎没有什么变化,但您现在正在ReadyForUpload分支中工作

如果你做了一些更改并提交了它们,你就可以

git checkout Master
您将返回masterbranch,ReadyForUpload中的更改已消失(即,刚刚存储)

当然,如果出于某种原因希望两个分支同时可用,可以将存储库克隆到另一个目录,并在那里签出另一个分支—在适用的情况下使用git pull或git push同步它们

是否每个分支都存储在物理存储中,就像一个目录中包含每个分支一样 文件在里面吗

答案是否定的

是否可以将分支导出到目录

对。有几种方法可以进行导出。但是,如果您打算对该分支进行小的修改/调查,并且经常希望在该分支上工作,因为随着您的开发(在主分支中)出现令人不安的生产问题。我建议你从原点复制另一个

例如,如果集中商定的原产地为
git://github.com/my_org/my_proj.git

您可能会使用克隆开发WD

git clone git://github.com/my_org/my_proj.git
那么你应该有一个产品

git clone git://github.com/my_org/my_proj.git my_proj_production
cd my_proj_production
git checkout -b release_branch
git push origin release_branch
在“我的项目生产”中,您应该修改URL、密码等以反映生产情况。 然后,每次您将从开发(
master
)到生产(
release\u branch
)的内容合并时,您都将在
my\u proj
目录下进行
git push
并在
my\u proj\u production
目录下进行操作

git remote update
git merge origin/master
第一行确保您将更改从远程恢复到本地HDD(作为
.git/objects
下的小文件),第二行命令确保您所做的更改合并到发布分支中(并且URL、密码等不会重新引入发布分支)


如果您(尚未)拥有一个中央存储库,请发表意见,我将根据这种情况调整答案。

如果您是Git新手,您可能需要从开始。它为您提供了一个很好的工作流程,可以维护
分支和
开发
分支,而不必陷入
Git


阅读更多关于它的信息

哦,例如,如果我想更新我的站点,我只需将
ReadyForUpload
分支克隆到另一个目录中,将其上载到我的主机,然后删除我创建的临时目录?是的,这是一种可能的方式。哇,我从来没有相信我的文件夹文件会改变每当我更改分支时都会自动编辑:O。感谢您的洞察力。分支实际存储在哪里/如何存储?分支作为diff存储在.git子目录中-也就是说,git(或多或少)只存储从另一已知点重新创建该分支所需的信息。即,如果您刚刚创建了一个新分支(这与您以前的分支相同)git只存储新分支的存在及其分支点。git流对于git新手来说似乎相当吓人!我更喜欢使用类似“gitbox”的GUI—这隐藏了git的大部分复杂性(但它们仍然可用)这是学习git基础知识的好方法。
git remote update
git merge origin/master