如何创建本地 git 存储库并使用 SourceTree 进行管理?
How to create a local git repository and manage with SourceTree?
我是 git 的新手(尽管我之前使用过 perforce 和 svn),我想对 Unity 项目进行源代码控制,但我不想在线托管它。
我一个人在做这个项目,但我通常在不同的地方使用两台不同的电脑。过去我在 USB 驱动器中有一个 SVN 存储库,用于从每台计算机中的项目的本地版本更新/提交。
因为我以前从未使用过 git 并且我想学习,所以我正在尝试做同样的事情(我知道你不应该以这种方式使用 git,但我绝对不想在任何在线服务器上托管我的项目)。
在阅读了很多关于 git 的内容后,我想我对它与 SVN 的不同之处有了一定的了解。我一直在按照本教程实现我的目标:
http://dexterlin.com/tag/git/
我的桌面上有一个本地 git 项目,然后使用终端(我在 MAC 上工作)我在桌面的另一个文件夹中创建了一个裸存储库。
当我尝试让 SourceTree 识别裸存储库时出现问题,我无法实现。
但我也有点困惑,我可以在我的电脑中创建两个不同的 folders/respositories 并将它们 link 到 SourceTree,但是 SourceTree 不让我从一个推到另一个,怎么来的?
我想使用 SoruceTree,因为我需要一个 Windows/Mac 客户端来处理不同计算机上的 git。
下面是问题:
- 我想做的事情在 git 中完全可行?
- 如何让 SourceTree 指向我创建的裸存储库?
- 将裸存储库复制到 USB 驱动器中是否可以稍后从另一台计算机存储库中提取?
- 如何让 SourceTree 让我 push/pull 从裸本地存储库进入我的本地存储库?
非常感谢!!任何帮助将不胜感激:)
将您的裸存储库移动到您的 USB 设备(例如,安装在 Z:\
或 /Volumes/MyUsbDevice/
上),或在那里创建一个新的裸存储库。 (我只是想指出您可以随时移动您的存储库)
$ cd /Volumes/MyUsbDevice/
$ mkdir myNewGame.git
$ cd myNewGame.git
$ git init --bare
裸存储库以 Git 的二进制格式包含您的项目历史,但您的文件无处可寻。这可能就是 SourceTree 感到困惑的原因。
您需要做的是在您要工作的machine 上创建此存储库的克隆:
在 Windows 上:
$ git clone Z:\myNewGame.git myNewGame
在 mac 上:
$ git clone /Volumes/MyUsbDevice/myNewGame.git myNewGame
或者您可以在 Sourcetree 中执行此操作,只需将它传递给您的 git 存储库在您的 USB 设备上的位置。
如果您浏览 myNewGame/.git/config
,您将看到这样的部分:
[remote "origin"]
url = /Volumes/MyUsbDevice/myNewGame.git
fetch = +refs/heads/*:refs/remotes/origin/*
这是 Git 存储有关您的 远程 裸存储库的信息的地方,这就是为什么始终将其安装在同一 folder/letter未来。
然后您可以使用 Sourcetree,pull
将从您的 USB 设备获取更改,push
会将它们写入您的 USB 设备。
您将在三个位置获得完整的历史记录,您 mac、您的 windows 和您的 USB 设备。仅当您要执行提取或拉取或推送时才需要连接您的 USB 设备。
所以你相当安全,因为你的历史是分布式的,但我仍然建议你定期备份你的裸存储库。
我是 git 的新手(尽管我之前使用过 perforce 和 svn),我想对 Unity 项目进行源代码控制,但我不想在线托管它。 我一个人在做这个项目,但我通常在不同的地方使用两台不同的电脑。过去我在 USB 驱动器中有一个 SVN 存储库,用于从每台计算机中的项目的本地版本更新/提交。
因为我以前从未使用过 git 并且我想学习,所以我正在尝试做同样的事情(我知道你不应该以这种方式使用 git,但我绝对不想在任何在线服务器上托管我的项目)。
在阅读了很多关于 git 的内容后,我想我对它与 SVN 的不同之处有了一定的了解。我一直在按照本教程实现我的目标: http://dexterlin.com/tag/git/
我的桌面上有一个本地 git 项目,然后使用终端(我在 MAC 上工作)我在桌面的另一个文件夹中创建了一个裸存储库。
当我尝试让 SourceTree 识别裸存储库时出现问题,我无法实现。 但我也有点困惑,我可以在我的电脑中创建两个不同的 folders/respositories 并将它们 link 到 SourceTree,但是 SourceTree 不让我从一个推到另一个,怎么来的?
我想使用 SoruceTree,因为我需要一个 Windows/Mac 客户端来处理不同计算机上的 git。
下面是问题: - 我想做的事情在 git 中完全可行? - 如何让 SourceTree 指向我创建的裸存储库? - 将裸存储库复制到 USB 驱动器中是否可以稍后从另一台计算机存储库中提取? - 如何让 SourceTree 让我 push/pull 从裸本地存储库进入我的本地存储库?
非常感谢!!任何帮助将不胜感激:)
将您的裸存储库移动到您的 USB 设备(例如,安装在 Z:\
或 /Volumes/MyUsbDevice/
上),或在那里创建一个新的裸存储库。 (我只是想指出您可以随时移动您的存储库)
$ cd /Volumes/MyUsbDevice/
$ mkdir myNewGame.git
$ cd myNewGame.git
$ git init --bare
裸存储库以 Git 的二进制格式包含您的项目历史,但您的文件无处可寻。这可能就是 SourceTree 感到困惑的原因。
您需要做的是在您要工作的machine 上创建此存储库的克隆:
在 Windows 上:
$ git clone Z:\myNewGame.git myNewGame
在 mac 上:
$ git clone /Volumes/MyUsbDevice/myNewGame.git myNewGame
或者您可以在 Sourcetree 中执行此操作,只需将它传递给您的 git 存储库在您的 USB 设备上的位置。
如果您浏览 myNewGame/.git/config
,您将看到这样的部分:
[remote "origin"]
url = /Volumes/MyUsbDevice/myNewGame.git
fetch = +refs/heads/*:refs/remotes/origin/*
这是 Git 存储有关您的 远程 裸存储库的信息的地方,这就是为什么始终将其安装在同一 folder/letter未来。
然后您可以使用 Sourcetree,pull
将从您的 USB 设备获取更改,push
会将它们写入您的 USB 设备。
您将在三个位置获得完整的历史记录,您 mac、您的 windows 和您的 USB 设备。仅当您要执行提取或拉取或推送时才需要连接您的 USB 设备。
所以你相当安全,因为你的历史是分布式的,但我仍然建议你定期备份你的裸存储库。