如何创建本地git存储库并使用SourceTree进行管理?

时间:2016-10-25 16:09:19

标签: git version-control atlassian-sourcetree

我是git的新手(虽然我以前使用perforce和svn工作)并且我想控制一个Unity项目,但我不想在网上任何地方托管它。 我单独从事这个项目,但我通常在不同的地方使用两台不同的计算机。在过去,我在USB驱动器中有一个SVN存储库,用于从每台计算机中的项目的本地版本更新/提交。

由于我之前从未使用过git而且我想学习,我正在尝试做同样的事情(我知道你不应该以这种方式使用git,但我绝对不想在任何时候主持我的项目在线服务器)。

在阅读了很多关于git的内容之后,我认为我对它与SVN的不同之处有了很好的把握。我一直在按照本教程实现我的目标: http://dexterlin.com/tag/git/

我的桌面上有一个本地git项目,然后使用终端(我在MAC上工作)我在桌面上的另一个文件夹中创建了一个裸存储库。

当我尝试让SourceTree识别裸存储库时出现问题,我无法实现。 但是我也有点困惑,我可以在我的计算机中创建两个不同的文件夹/存储库并将它们链接到SourceTree,但是SourceTree不允许我从一个推送到另一个,怎么样?

我想使用SoruceTree,因为我需要Windows / Mac客户端来处理不同计算机上的git。

以下是问题: - 在git中,我想要做的是什么? - 如何让SourceTree指向我创建的裸存储库? - 将裸存储库复制到USB驱动器以后可以从另一个计算机存储库中获取? - 如何让SourceTree让我从裸本地存储库推送/拉入我的本地存储库?

非常感谢提前!!任何帮助将非常感激:)

1 个答案:

答案 0 :(得分:4)

将您的裸存储库移动到您的USB设备(例如,挂载在Z:\/Volumes/MyUsbDevice/上),或在那里创建一个新的裸存储库。 (我只是想指出你可以随时移动你的存储库)

$ cd /Volumes/MyUsbDevice/
$ mkdir myNewGame.git
$ cd myNewGame.git
$ git init --bare

裸存储库包含Git二进制格式的项目历史记录,您的文件无处可寻。这可能是SourceTree迷茫的原因 您需要做的是在您想要工作的机器上创建此存储库的 clone

在Windows上:

$ git clone Z:\myNewGame.git myNewGame

在mac上:

$ git clone /Volumes/MyUsbDevice/myNewGame.git myNewGame

或者您可以在Sourcetree中执行此操作,只需将其传递给USB设备上git存储库的位置即可。

如果您浏览myNewGame/.git/config,则会看到如下所示的部分:

[remote "origin"]
    url = /Volumes/MyUsbDevice/myNewGame.git
    fetch = +refs/heads/*:refs/remotes/origin/*

这是Git存储有关远程裸存储库的信息的地方,这就是为什么将来始终将它安装在同一个文件夹/字母上的重要性。

然后,您可以使用Sourcetree,pull将从您的USB设备进行更改,push会将其写入您的USB设备。

您将拥有三个位置的完整历史记录,包括Mac,Windows和USB设备。只有在要执行提取或拉取或推送时才需要连接USB设备。

因为您的历史记录已分发,所以您相当安全,但我仍然建议您定期备份您的裸存储库。