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推送使用了太多的资源,并由主机终止_Git_Resources_Push - Fatal编程技术网

Git推送使用了太多的资源,并由主机终止

Git推送使用了太多的资源,并由主机终止,git,resources,push,Git,Resources,Push,所以我现在正在为一个老项目创建回购协议。我总共有4.5 Gig的文件,所以这需要一些时间。我在一个共享主机环境中,我的主机限制了占用太多内存太长时间的进程。很明显,这个过程需要一段时间,而且我的主人一直在结束 有没有一种方法可以让我轻松放弃一次提交,这样我就不会受到速率限制 这也是我的第一次提交,所以我很难恢复我添加的所有文件。否则我会一件一件地做。我的第一个想法是在本地创建裸repo,然后简单地将其FTP到服务器。这应该行。我的第一个想法是在本地创建裸repo,然后简单地将其FTP到服务器。这

所以我现在正在为一个老项目创建回购协议。我总共有4.5 Gig的文件,所以这需要一些时间。我在一个共享主机环境中,我的主机限制了占用太多内存太长时间的进程。很明显,这个过程需要一段时间,而且我的主人一直在结束

有没有一种方法可以让我轻松放弃一次提交,这样我就不会受到速率限制


这也是我的第一次提交,所以我很难恢复我添加的所有文件。否则我会一件一件地做。

我的第一个想法是在本地创建裸repo,然后简单地将其FTP到服务器。这应该行。

我的第一个想法是在本地创建裸repo,然后简单地将其FTP到服务器。这应该可以。

如果您没有在一次提交中完成所有工作,您可以
git-push
部分提交

使用
git log
您可以“漫游”您的历史记录,检查一些提交并将它们推送到远程。让我们说:

$ git log --oneline master
$ git checkout abcabc123123 # 10th commit in history
$ git push origin HEAD:master
$ git checkout bcdef145325 # 30th commit in history
$ git push origin HEAD:master
等等

您的步骤必须提交多少次将是一个尝试和失败的任务-它取决于您的提交大小

如果您没有任何历史记录,可能可以对每个文件/文件夹进行单独提交(我认为最好按文件大小进行关联),
如前所述推送它们,然后在单个文件中挤压所有提交:

$ git checkout master
$ git reset acbacbad142 # hash of first commit
$ git commit --ammend
$ git push -f origin master
您可以使用
reset
+
commit--ammend
在一次提交中重新设置所有更改的基础,然后
push-f
重写远程分支。文件(
blob
s,以git术语)将已经上载(甚至
树也将上载),因此不会花费太多时间。

在您重新编写历史记录时,请确保在您开始进行短推和推压提交之间没有人从远程克隆/获取,以避免冲突。

如果您没有在一次提交中完成所有工作,您可以部分推压提交

使用
git log
您可以“漫游”您的历史记录,检查一些提交并将它们推送到远程。让我们说:

$ git log --oneline master
$ git checkout abcabc123123 # 10th commit in history
$ git push origin HEAD:master
$ git checkout bcdef145325 # 30th commit in history
$ git push origin HEAD:master
等等

您的步骤必须提交多少次将是一个尝试和失败的任务-它取决于您的提交大小

如果您没有任何历史记录,可能可以对每个文件/文件夹进行单独提交(我认为最好按文件大小进行关联),
如前所述推送它们,然后在单个文件中挤压所有提交:

$ git checkout master
$ git reset acbacbad142 # hash of first commit
$ git commit --ammend
$ git push -f origin master
您可以使用
reset
+
commit--ammend
在一次提交中重新设置所有更改的基础,然后
push-f
重写远程分支。文件(
blob
s,以git术语)将已经上载(甚至
树也将上载),因此不会花费太多时间。
当您正在编写历史记录时,请确保在您开始进行短推和推压提交之间没有人从远程克隆/获取,以避免冲突。

与s的想法相同,我将在本地创建一个,以便创建一个(巨型)文件

FTP单个文件比裸git回购的多个文件更不容易出错。
(具体示例见“”)

然后,您可以从远程端的捆绑包中进行克隆。

与s的想法相同,我将在本地创建一个,以便创建一个(巨大的)文件

FTP单个文件比裸git回购的多个文件更不容易出错。
(具体示例见“”)

然后,您可以从远程端的捆绑包进行克隆