【发布时间】:2020-02-14 20:35:40
【问题描述】:
我正在使用 LibGit2Sharp 将存储库克隆到本地文件夹中。我知道我可以简单地使用蛮力并在之后删除 .git 文件夹,这肯定会实现我想要实现的目标,但这不是解决这个问题的最优雅的方法。如果我删除了 .git 文件夹,我将不得不在稍后阶段再次克隆它。我想轻松地在分支之间“切换”,但如果每次我都必须重新克隆它才能做到这一点,这将成为一个缓慢而费力的过程。
我想做的是,在克隆存储库之后,....这是我不知道正确术语的地方。什么....“退出”? “断开凭据”?我不知道。基本上,我想要实现的是,在克隆之后,用户不能简单地开始处理文件并将它们推送回远程存储库,但是我在网上找不到任何关于如何“清除凭据”的明确答案”。显然,我希望以编程方式这样做。
对不起。由于这在我自己的脑海中并不清楚,我不知道如何正确地问这个问题。我希望我描述得足够清楚,以便有人知道如何回答这个问题。
欢迎使用 C# 或 VB.NET 回答...
问候
皮诺
【问题讨论】:
-
用户是在同一个进程中,还是说Git仓库的普通交互式用户在运行其他进程?
-
我在周末想到了这个,也许我很傻。我编写了一个程序集,它使用 LibGit2Sharp 从远程存储库中获取文件。为此,我使用一组特定的凭据。当我在安装了 TortoiseGit 的机器上执行此操作时,我会看到文件夹旁边的绿色勾号。我担心的是 TortoiseGit 是否会使用我在自己的 Assembly 中使用的相同凭据,或者 TortoiseGit 是否会期望用户使用他或她自己的凭据?
-
所以我得到了第二台机器,我在上面安装了 git 和 tortoisegit。它要求我提供我拒绝输入的凭据(您可以不这样做就继续)。然后我运行我的软件,它使用编码凭据将文件从存储库中取出。之后,我在文件夹中添加了一个文件并尝试提交,而 TortoiseGit 要求提供凭据。换句话说,我无法从这个“客户端”PC 提交/推送更改。这正是我想要实现的。快乐的日子,所以。
标签: c# vb.net git libgit2sharp