0
特定のgitリポジトリのコンテンツを使用するコンソールアプリケーションがあります。C#とGitを使ってタグをチェックアウトするには?
- が
- 別の場所
問題に編成コンテンツを移動
私のC#コンソールアプリケーションでタグをチェックアウトするにはどうすればよいですか?私はちょうど同じようなネイティブのGitコマンドを使用したいと思いますgit checkout tags/<tagname>
特定のgitリポジトリのコンテンツを使用するコンソールアプリケーションがあります。C#とGitを使ってタグをチェックアウトするには?
問題に編成コンテンツを移動
私のC#コンソールアプリケーションでタグをチェックアウトするにはどうすればよいですか?私はちょうど同じようなネイティブのGitコマンドを使用したいと思いますgit checkout tags/<tagname>
これを行うには、実際にはかなり簡単です。私は新しいプロセスを使い、StandardOutputから読み込むというように、一般的なGitコマンドメソッドを作成しました。私はその後、すべてのStandardOutputを後で繰り返し処理できるカンマ区切りの文字列として返しました。
public string RunGitCommand(string command, string args, string workingDirectory)
{
string git = "git";
var results = "";
var proc = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = git,
Arguments = $"{command} {args}",
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = true,
WorkingDirectory = workingDirectory,
}
};
proc.Start();
while (!proc.StandardOutput.EndOfStream)
{
results += $"{proc.StandardOutput.ReadLine()},";
}
proc.WaitForExit();
return results;
}
これは私がそのように
最後にvar tags = RunGitCommand("tag", "", $"{location}"); // get all tags
のようなタグを呼び出すことが許可され、私は、すべてのタグを反復処理し、私は上記に書いたRunGitCommand
方法でそれらをチェックアウトすることができます。各反復タグについて、私はtag
がタグのリストの個々の要素であるような何かをすることができます。
git.RunGitCommand("checkout", $"tags/{tag}", $"{location}");
私は、Libgit2sharpを使用する方がはるかに簡単だとわかりました。https://github.com/libgit2/libgit2sharp – Philippe