Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.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:从本地repo推送的文件不会显示在远程Git repo中_Git_Svn_Git Tower - Fatal编程技术网

Git:从本地repo推送的文件不会显示在远程Git repo中

Git:从本地repo推送的文件不会显示在远程Git repo中,git,svn,git-tower,Git,Svn,Git Tower,我是git的新成员,我刚刚开始想办法。我一直在试图弄清楚我的远程开发服务器和本地机器上的git。我已经在远程服务器和本地机器(OSX)上成功安装了git。我正在使用一个名为Tower的MacGit客户端,这是我的困境 我可以在远程服务器上成功创建一个裸存储库,没有问题。然后我打开Tower并尝试将远程存储库克隆到本地计算机。我已经能够做到这一点,我可以成功地克隆远程回购到我的本地机器。然而,每当我向本地分支添加一个新文件,然后提交更改并推送到远程repo时,它会说它成功通过了,但当我检查远程re

我是git的新成员,我刚刚开始想办法。我一直在试图弄清楚我的远程开发服务器和本地机器上的git。我已经在远程服务器和本地机器(OSX)上成功安装了git。我正在使用一个名为Tower的MacGit客户端,这是我的困境

我可以在远程服务器上成功创建一个裸存储库,没有问题。然后我打开Tower并尝试将远程存储库克隆到本地计算机。我已经能够做到这一点,我可以成功地克隆远程回购到我的本地机器。然而,每当我向本地分支添加一个新文件,然后提交更改并推送到远程repo时,它会说它成功通过了,但当我检查远程repo位置时,那里没有新文件

Tower说文件存在于远程repo中,我可以将该repo签出到一个新的本地分支,它会像应该的那样提取以前的提交历史记录和文件,但我找不到文件存储在我的远程repo上的位置


我错过了什么?任何建议都将不胜感激,谢谢

它们被存储为Git对象。裸存储库没有工作目录,因此永远不会在服务器上签出任何文件。数据存储在Git自己的内容寻址文件系统中,位于
objects
目录下,由对象内容的SHA1散列键控。对象包括blob(文件数据)、trees(文件和树的列表)和commit(元数据,例如作者姓名、时间戳、commit消息、父commit对象ID以及与commit相对应的树对象ID)


(这些对象也可以组合到包中,这些包将位于
对象/pack
目录下。)

好的,这很有意义,那么什么是访问这些不可访问的远程文件的最佳方式,以便我可以更新一个实时网站?抱歉,如果这听起来像是一个愚蠢的问题,请在此处填写noob。将存储库克隆到web服务器上,检查您的生产分支,并在需要将实时部署更新为生产分支上的最新代码时使用git pull。可能我遗漏了一些内容,但这对于我来说似乎有些多余。是否可以在不使用生产分支的情况下将本地计算机推送到实时部署?您不必使用单独的分支,但不能只推。推送不会更新目标存储库工作目录中的任何签出文件。您仍然需要以这样或那样的方式处理远程存储库。使用Git部署网站的标准方法是将中央存储库克隆到生产服务器上并获取更新。推送到生产存储库不是一个好主意。您可以在中央存储库上使用post receive挂钩来触发从部署repo的拉取。或者,您可以编写一个简单的web应用程序,当您单击按钮时,该应用程序将发出pull命令。这取决于你如何处理。