将git存储库复制到USB驱动器

use*_*813 12 git

我正在开发一个开源项目,我的机器上有一个带有所有代码的git repo.回购有点大,我想在我无法访问计算机时继续工作.

如果我将repo复制到我的USB驱动器中它仍然会表现得好像我在我的机器上的原始仓库(相同的配置等)?

如果复制不起作用,有没有办法实现这一点,而无需在USB驱动器上从头开始重新创建repo?

Dov*_*val 38

它会工作,但某些配置变量不会随身携带.

Git有三个级别的配置:系统范围(PC上的所有用户),全局(特定于用户)和特定于repo.

特定于回购的配置将与您的回购一起移动; 系统和全球配置不会.我会检查您的配置文件,如有必要,还可以获取用户特定配置的副本.

  • 这方面的一个重要方面是您的作者信息(姓名和电子邮件).这些通常存储在全局配置中,因为您经常对所有存储库使用相同的配置. (6认同)
  • @ jpmc26除此之外,他们**可以**移动到回购级别,请参阅http://dereenigne.org/git/set-git-email-address-on-a-per-repository-basis (3认同)
  • 复制回购是不好的做法,做@microbial建议的做法要好得多.这就是将USB上的存储库视为可以推送和拉出的辅助`裸`存储库.然后,您可以分别在两台计算机上设置凭据.这里没有人指出这一点.我会拒绝投票,但此时没有足够的代表. (3认同)

小智 33

最好的方法是添加一个遥控器(即使它是一个本地文件夹).通过这种方式,您始终可以在两者之间转移提交.当你想要移动

git init /mnt/usb/repo
git remote add usb /mnt/usb/repo
git push usb master
Run Code Online (Sandbox Code Playgroud)

最后一个命令可用于根据需要将任何分支推送到文件夹中.如果本地分支当前没有将远程设置为上游,则可能需要执行此操作--set-upstream.

另请参阅 git如何添加本地存储库并在Stack Overflow上将其视为远程存储库.

  • 我预计在离开前一天会忘记推送USB回购. (6认同)
  • 更好地使它成为裸仓库:`git init --bare` - 只传输git元数据,工作树中没有实际文件.这假设您将所有关注的更改提交到存储库(可能是在一次性工作进行中的分支).对于FATFS无法重现的文件类型,模式和权限甚至文件名,裸存储库的麻烦要少得多.也可以在复制到USB存储器之前打包repo以节省空间并且可能使操作更快. (4认同)
  • 你能详细说明原因吗? (2认同)
  • 在USB上创建“远程”是git的本质-分布式版本控制-是吗?对USB和“我的机器”上的“远程”所做的更改可以独立进行;特别是如果他在离开一天之前忘记推送到USB存储库的话。他可以拉,捡樱桃,藏东西-任何必要的步骤都可以使事情恢复同步。当网络连接不可用时,我会一直同步存储库的副本。 (2认同)