我需要我的应用程序用Git做两个简单的操作
1)克隆远程存储库;
2)定期从远程存储库执行更新。
我绝对不知道怎么做 libgit2sharp 。 API非常复杂。
有人可以帮帮我吗?
答案 0 :(得分:9)
1)从远程存储库克隆分支;
// Url of the remote repository to clone
string url = "https://github.com/path/to_repo.git";
// Location on the disk where the local repository should be cloned
string workingDirectory = "D:\\projects\to_repo";
// Perform the initial clone
string repoPath = Repository.Clone(url, workingDirectory);
using (var repo = new Repository(repoPath))
{
... do stuff ...
}
2)定期从远程分支执行更新
// "origin" is the default name given by a Clone operation
// to the created remote
var remote = repo.Network.Remotes["origin");
// Retrieve the changes from the remote repository
// (eg. new commits that have been pushed by other contributors)
repo.Network.Fetch(remote);
...文件未更新。可能是因为Fetch下载了更改,但没有将它们应用于工作副本?
实际上,Fetch()
调用不会更新工作目录。它从上游“下载”更改并更新远程跟踪分支的引用。
如果要更新工作目录的内容,则必须
repo.Checkout()
)已提取的远程跟踪分支来替换工作目录的内容Fetch()
,调用repo.Network.Pull()
将执行提取和合并注意:您必须在合并期间处理冲突,因为您在本地执行的某些更改会阻止合并完全应用。
您可以查看测试套件,以便更好地了解这些方法及其选项: