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

Cri*_*ris 4 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 让我从裸本地存储库推/拉到我的本地存储库?

提前谢谢了!!任何帮助将不胜感激:)

Thi*_* D. 5

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

$ cd /Volumes/MyUsbDevice/
$ mkdir myNewGame.git
$ cd myNewGame.git
$ git init --bare
Run Code Online (Sandbox Code Playgroud)

裸存储库以 Git 的二进制格式包含您项目的历史记录,而您的文件在那里无处可寻。这可能就是 SourceTree 感到困惑的原因。
您需要做的是在您要工作的机器上创建此存储库的克隆

在 Windows 上:

$ git clone Z:\myNewGame.git myNewGame
Run Code Online (Sandbox Code Playgroud)

在 Mac 上:

$ git clone /Volumes/MyUsbDevice/myNewGame.git myNewGame
Run Code Online (Sandbox Code Playgroud)

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

如果你浏览到myNewGame/.git/config你会看到这样的部分:

[remote "origin"]
    url = /Volumes/MyUsbDevice/myNewGame.git
    fetch = +refs/heads/*:refs/remotes/origin/*
Run Code Online (Sandbox Code Playgroud)

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

然后您可以使用 Sourcetree,pull从您的 USB 设备获取更改,push将它们写入您的 USB 设备。

您将在三个位置拥有完整的历史记录,您的 Mac、您的 Windows 和您的 USB 设备。仅当您要执行 fetch 或 pull 或 push 时才需要连接 USB 设备。

所以你很安全,因为你的历史是分布式的,但我仍然建议你定期备份你的裸存储库。