将git存储库放在外部硬盘上

时间:2015-05-04 23:14:04

标签: xcode git version-control xcode6

我正在使用XCODE,并且最近决定尝试使用git(我是一个独立的应用程序开发人员,所以从来没有真正需要使用它)。因为我之前尝试过它占用了大量的存储空间,所以当前使用git的所有项目都存储在外部硬盘上。然而,我想知道是否可以将项目的开发分支保留在mac的硬盘驱动器上,同时将主分支保留在外部硬盘驱动器上。这样,我可以每隔几天将稳定的分支机构合并到外部硬盘驱动器上,并将开发副本保留在我的macbook上,以免我随身携带外置硬盘驱动器。这可能吗?关于git新手的任何建议?

2 个答案:

答案 0 :(得分:6)

如果您项目的完整历史记录确实占用了太多空间(但重新考虑并检查两次,如果确实如此),可以采用以下方法:

首先在分支remote中的main repo(外部硬盘驱动器)中显示完整的历史记录(如果我是你,我会保留默认分支名称master)。将它作为一个简单的回购是一个好主意,以便以后轻松推动。如果你还没有完成它:

$ cd /mnt/your/external/drive
$ git clone --bare /repo/where/you/currently/have/the/whole/history

然后,当您想要开始新的开发阶段时,请从remotelocal(您的笔记本电脑的硬盘)进行浅层克隆

$ cd $HOME/
$ git clone --depth 10 /mnt/you/external/drive/repo.git

这会克隆存储库,但历史记录中只有最后10次提交。这样,如果你的历史真的非常巨大,你就可以节省空间(再次,如果历史占据的空间确实存在问题,那么看两次。)

像往常一样创建工作分支,在该分支中工作,合并到main,推送到remote

$ git checkout -b super_feature   # use good branch names, not "dev"
... work, commit, work, commit, work, commit, ... time to merge.
$ git checkout main
$ git merge super_feature         # I usually add --no-ff
$ git push origin main

你去吧。您使用了remote的本地克隆,历史有限。

过了一会儿,你的浅层克隆会有越来越多的历史。如果历史空间再次成为问题(但是......你知道),只需抛弃浅层克隆并从remote创建一个新的。

答案 1 :(得分:-2)

git并不关心存储库的存在位置。

您可以在一个硬盘驱动器上创建存储库,将其克隆到另一个硬盘驱动器,并在两个存储库之间推/拉分支。