gpt4 book ai didi

git - 模拟一个 git repo 来测试

转载 作者:太空狗 更新时间:2023-10-29 13:15:35 25 4
gpt4 key购买 nike

是否有一种简单的方法来模拟 git 服务器/存储库以进行单元测试?我不想测试 git 本身,而是我的代码如何与 git 交互。

我想做类似的事情

create git@localhost.com:myRepo.git c:/somepath
copy somefile.txt c:/somepath

然后当我

git clone git@localhost.com:myRepo.git

返回 c:/somepath (somefile.txt) 的全部内容,无需身份验证。我想测试我的代码如何处理克隆,所以对这个 git 存储库的所有调用都应该自动通过身份验证。

我查看了 git 守护进程,但它运行在真正的 git 上,所以我的测试代码最终不得不做大量的 repo 内容管理(添加、提交、分支等),这似乎是不必要的。

最佳答案

您不需要服务器即可克隆。它将在普通目录上工作。

创建一个存储库。

$ git init /path/to/repo

往里面放点东西。

$ cd /path/to/repo
$ touch foo bar
$ git add .
$ git ci
[master (root-commit) 3c99023] Some files.
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 bar
create mode 100644 foo

克隆它。

$ git clone /path/to/repo /path/to/clone
$ cd /path/to/clone
$ ls
.git bar foo

请注意,如果您推送到非裸存储库,git 不会喜欢它,因此您可能需要执行将 /path/to/repo 转换为裸存储库的中间步骤。最简单的方法是制作一个裸克隆并将其用于克隆的其他所有内容。

$ git clone --bare /path/to/repo /path/to/upstream
$ git clone /path/to/upstream /path/to/clone
...use /path/to/clone as normal pushing to /path/to/upstream...

您也可以最初只制作一个裸克隆,而不预先填充它。

关于git - 模拟一个 git repo 来测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33225785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com