我有一个在我的笔记本电脑上设置的git存储库,我在我的拇指驱动器上创建了一个克隆(用作备份)。我已经设置了远程回购(拇指驱动器)来忽略推送错误。我可以根据需要将存储库的内容推送到驱动器(即,git日志显示在笔记本电脑上进行的提交),但是我想将这些文件与回购更改一起推送。有谁知道如何做到这一点?将文件推送到远程git存储库
这是在Linux中使用。如果您需要任何其他信息,请询问。
我有一个在我的笔记本电脑上设置的git存储库,我在我的拇指驱动器上创建了一个克隆(用作备份)。我已经设置了远程回购(拇指驱动器)来忽略推送错误。我可以根据需要将存储库的内容推送到驱动器(即,git日志显示在笔记本电脑上进行的提交),但是我想将这些文件与回购更改一起推送。有谁知道如何做到这一点?将文件推送到远程git存储库
这是在Linux中使用。如果您需要任何其他信息,请询问。
但我想推文件 自己与回购一起改变
不知道你的意思在这里。
您最终是否在您的拇指驱动器上创建了bare repository? 如果是这样,它是由设计,没有检出文件。
但是,您可以使用git archive来导出文件,或者简单地在您的拇指驱动器上创建另一个非光面克隆。
也许检查有关working directory的文档。
git checkout master
如果您不使用裸仓库。
根据您的需要,裸仓可能不是您想要的。
我打算假设,因为创建一个裸存储库需要git clone somePath --bare
您可能正在使用一个标准的git存储库而没有检出任何文件。
这里是用例:
只备份:纯仓库可能是 更好,因为你只会有 由库所占用的空间, 压缩,而不是-also-的空间 从工作副本。
副本具有完全访问文件,不必是最新 所有的时间:简单的克隆 仓库,使用git reset origin/master
擦无论是在工作拷贝赞成推变化。
复制文件不断更新:这是最棘手的情况,因为默认情况下,git不会在推送时更新工作副本。有一个快速搜索,并提到一个方法是使用后更新钩:http://jennyandlih.com/pushing-remote-git-working-copy。请注意,这可能不会允许在该副本上进行编辑并在推送时进行替换,除非您深入了解可以自行计算出来的存储流行事物。
我的建议,(我做这一切的时候),手动更新克隆当你需要:
创建一个简单的克隆(非裸)。然后git branch staging
和git checkout staging
。您现在有一份工作副本,但您需要通过git rebase origin/master
手动自行更新,以便获取更改。你可以推动从分期到主人的变化。请注意,该存储库中的任何“主”分支可能会被推到它的变化扭曲,并且不应该被使用或依赖。
您似乎在说,当您推送文件时,您希望文件本身出现在远程回购站中?这不是git的常用用法,但你当然可以做到;许多人使用它来让网站使用git作为传输来自动部署。
要实现此目的,您需要在目标存储库(.git/hooks/post-update
)中设置更新后的挂钩。像这样的应该做的伎俩:
#!/bin/sh
git checkout -f
请记住,以确保它是可执行的。
这个想法很有道理,但是你的实现有一个严重的错误。参见[SO 5531309](http://stackoverflow.com/questions/5531309/reset-hard-on-git-push/5534486#5534486)。在编写使用使用工作树的GIt命令的钩子时,需要将GIT_DIR和chdir设置为工作树本身。在非裸仓库中,使用'GIT_DIR = .'运行的钩子和cwd设置为'.git'目录。这将导致使用工作树的Git命令将'.git'本身视为工作树。这绝对不是你想要的(它可能会损坏你的仓库)。 – 2011-04-09 03:35:28
@Chris谢谢,如果我最终需要这个,我会尽力记住这一点! – crazyscot 2011-04-09 17:40:12
我不太明白:你能够将文件推送到拇指驱动器,并且你问如何将文件推送到拇指驱动器? – Darhuuk 2011-04-08 20:51:39
为什么不直接拉到拇指驱动? – 2011-04-08 21:30:45