我刚刚开始使用Git,我有一个问题:
当我创建一个新的存储库时,我得到一个文件夹,我应该在其中放置所有文件(此文件夹包含.git
文件夹)。这个文件夹是完全独立的吗?
假设我已经创建了一个新的存储库,并在项目上工作了一段时间(做了提交)。如果我将该文件夹移动到另一个位置(比如另一个磁盘),它仍然可以工作吗?如果我把它移到另一台电脑怎么办?我可以在外部设备(外部硬盘或USB记忆棒)上安装存储库/文件夹,并在多台计算机上使用它吗?
答案 0 :(得分:6)
是。这是本地存储库,它包含有关存储库的所有信息。
唯一不包括的是全局配置。
有关详细信息,请参阅this free Git documentation。引自那里:
Git创建.git目录,这是Git存储和操作的几乎所有内容所在的目录。如果要备份或克隆存储库,将该单个目录复制到其他位置几乎可以为您提供所需的一切。
答案 1 :(得分:2)
文件夹本身是独立的。
实际上,如果您已经提交了所有内容并且没有进行本地更改,那么.git
文件夹本身就足够了。 .git
文件夹是您的存储库。该文件夹的其余内容是签出的工作目录。您不能将这些(特别是如果有大量文件)复制到其他机器上。
答案 2 :(得分:1)
是的,它包含git需要的所有内容。
它确实适用于usb棒。
答案 3 :(得分:1)
是的,该文件夹是自包含的,但是如果要从其他计算机对其执行git操作,则需要安装git
答案 4 :(得分:1)
几乎。
push
或clone
或bundle
复制) ,即使它们存储在.git
文件夹中
在您的情况下(.git
目录的重复),工作本地计算机的挂钩可能不适用于另一个(例如,因为它是perl
脚本,而perl
不是没有安装在另一台机器上。 Git会将移动的回购作为git回购承认,所以你可以说它在这方面是独立的。
我更喜欢将我的仓库移动为 git attributes (仅移动一个文件)。
但如果您依赖任何其他(脚本/工具/其他repos)来完成repo并实际允许您使用它,则可能需要考虑将其他外部元素移动为好。
答案 5 :(得分:0)
Git文件夹可能包含sel,但并不总是像它一样。
例如,今天我努力将恢复的.git文件夹和文件复制到新的Virtual Box系统后,存储在Virtual Box / Lubuntu内部外部usb驱动器上的repo硬盘损坏在正常关闭之前意外断开连接(修复)与chkdsk / f / x)。
据我所知,所有文件似乎都完好无损,git日志显示正常,但标题为红色。但所有推向新创建的远程仓库的尝试都遇到了各种错误,例如"无法遍历父母"对于各种提交#"你确定你有权限吗?"此外,还有一些关于"符号链接"的消息。当文件最初从我恢复的驱动器复制到
新创建的VM。我认为这可能是一个权限问题,但所有文件都是可读/写的。也许.git有内部检查?最终结果我只是通过删除.git并初始化本地仓库(基本上是硬重置)成功推送到远程...所有历史记录都丢失了(只是一个类项目所以事先是本地的,现在Bitbucket会防止再次发生我希望。
但我认为.git文件夹是自包含的。