1

GitSharp (Git for .NET and Mono) を使用して、変更を SSH 経由でリモート サーバーにプッシュするにはどうすればよいですか?

4

2 に答える 2

3

理論的には、最新のGitSharp 0.3 リリース(2010 年 6 月) には次のものが含まれています。

トランスポート コードのバグ修正 ( http またはsshによるプッシュ/フェッチ)

GitSharp README.txtには次のものが含まれています。

オブジェクト トランスポート

  • ssh、git、http、およびバンドルを介して取得します。
  • ssh、git 経由でプッシュします。Git# は
    プッシュされたパックをまだ差分化していないため、C Git パックよりもはるかに大きくなる可能性があります。

このスレッドで (ssh 経由で) そのようなプッシュの例を見つけることができます:

Repository repository = new Repository(@"\path\to\my_repos");
repository.Index.Add(@"\path\to\my_file");

Commit commited = repository.Commit("Testing fromGitC#", new Author("Author", "...@aCompany.com"));

if(commited.IsValid) {
    PushCommand pushCommand = new PushCommand {
        RefSpecs = new List<RefSpec> {
           new RefSpec("HEAD", "refs/for/master")
        },
        Force = true,
        Repository = repository
    };
    pushCommand.AddAll();
    pushCommand.Execute();
} 
于 2010-11-09T12:55:14.597 に答える
2

GitSharp は、Java から C# への JGit の手動ポートに基づいています。これを半自動的に行う別のプロジェクトがあります (MonoDevelop に追加する目的で)。

http://foodformonkeys.blogspot.com/2010/10/ngit.html

https://github.com/slluis/ngit

NGITについて

NGit は JGit [1] を C# に移植したものです。このポートは、Java から C# への変換ユーティリティである Sharpen [2] を使用して半自動的に生成されます。

NGit は、すべてのリポジトリ操作プリミティブとトランスポート プロトコルを含む、JGit によって実装されたすべての機能を提供します。SSH サポートは、プロジェクトに含まれる jsch [3] のポートによって提供されます。

プロジェクトは 4 つのライブラリで構成されています。 - NGit: git ライブラリ。- NGit.Test: NGit の単体テスト - NSch: jsch のポート。- Sharpen: 上記のライブラリに必要な一部のサポート クラス。

于 2010-11-09T14:11:03.250 に答える