以下是实现 AtomGit 基本操作的 C# 代码示例,使用 LibGit2Sharp 库进行 Git 仓库操作:
初始化仓库
csharp
using LibGit2Sharp;
string repoPath = @"C:\path\to\repository";
Repository.Init(repoPath);
克隆仓库
csharp
string cloneUrl = "https://atomgit.com/username/repository.git";
string localPath = @"C:\path\to\local\repo";
Repository.Clone(cloneUrl, localPath);
提交更改
csharp
using (var repo = new Repository(repoPath))
{
// 添加文件到暂存区
Commands.Stage(repo, "*");
// 创建提交
var author = new Signature("Your Name", "email@example.com", DateTimeOffset.Now);
repo.Commit("Initial commit", author, author);
}
推送更改
csharp
using (var repo = new Repository(repoPath))
{
var remote = repo.Network.Remotes["origin"];
var options = new PushOptions
{
CredentialsProvider = (url, usernameFromUrl, types) =>
new UsernamePasswordCredentials
{
Username = "your_username",
Password = "your_password_or_token"
}
};
repo.Network.Push(remote, @"refs/heads/master", options);
}
拉取更新
csharp
using (var repo = new Repository(repoPath))
{
var options = new PullOptions
{
FetchOptions = new FetchOptions
{
CredentialsProvider = (url, usernameFromUrl, types) =>
new UsernamePasswordCredentials
{
Username = "your_username",
Password = "your_password_or_token"
}
}
};
Commands.Pull(repo, new Signature("Your Name", "email@example.com", DateTimeOffset.Now), options);
}
创建分支
csharp
using (var repo = new Repository(repoPath))
{
repo.CreateBranch("new-feature");
}
切换分支
csharp
using (var repo = new Repository(repoPath))
{
Commands.Checkout(repo, repo.Branches["new-feature"]);
}
注意:
- 需要先安装 LibGit2Sharp NuGet 包
- 实际使用时需要替换路径、URL 和凭据信息
- 对于私有仓库,建议使用个人访问令牌而非密码