我今天刚开始使用Git,如果这是一个超级基本问题,那就很抱歉。我似乎无法绕过所有这些新术语,足以让我的配置得以设置。 我有2台服务器:远程和本地。 Remote是一个netork位置,我正在工作的网站需要驻留;它也与同事分享。 local是我机器的iis网络服务器上的一个文件夹。
我在远程服务器上创建了一个repo。这是文件需要“生存”的地方,所以我没有使用init --bare
。我提交了初始配置。然后我在我的本地机器上创建了一个repo的克隆,我将用它作为我的本地工作区。我添加了一个新文件(test.html),将其提交给master,然后尝试推送到克隆的原点(git push origin master
)。推送时没有显示错误(我已检查到原始仓库上的虚拟分支,因此不存在冲突),但文件未显示在远程服务器上。
这里的目的是进行设置,以便我在本地完成大部分工作,然后将更改推送到远程位置,在那里它们可以作为UAT的服务器,之后它们将再次被推送到生产环境中。但我似乎无法通过这个初始配置。
非常感谢您提供任何帮助。干杯!
答案 0 :(得分:0)
我添加了一个新文件(test.html),将其提交给master,然后尝试推送到克隆的origin(git push origin master)。推送时没有显示错误(我已检查到原始仓库上的虚拟分支,因此不存在冲突),但文件未显示在远程服务器上。
由于您检查了服务器上的虚拟分支,并且您将test.html添加到master,当然您不会在服务器上看到test.html:该文件在虚拟分支中不存在,仅在master上存在。如果在服务器上键入git checkout master
,则应该看到该文件。
但是,您尝试执行的操作似乎是当您按下它时,服务器上工作目录中的文件会自动更新。不幸的是,这是不可能的。工作目录仅作为显式检出或拉取服务器的结果而更新。
您可能想要做的是研究监听git repo的构建服务器软件,并在推送时执行操作(例如将文件复制到Web服务器)。或者你可能想要查看git钩子,它也可以响应推送。
无论如何,你需要你推/拉的“主”git仓库是一个裸仓库。