NGitに移植しようとしているいくつかの機能がgitで機能しています。私のgitスクリプトは次のようになります:
git add .
git commit -a -m "Auto Commit"
git fetch
git rebase
git push
(競合処理の詳細は省略しました。ここでは関係ありません。)
これをNGitに移植すると、次のようになります。
// Open a connection to the repository
Git _git = Git.Open(MyRepoPath);
// Add all new files to the commit.
_git.Add().AddFilepattern(".").Call();
// execute the commit, but don't push yet.
_git.Commit().SetMessage(CommitMsg).SetAll(true).Call();
// fetch all remote files
_git.Fetch().Call();
// rebase
_git.Rebase().SetUpstream("FETCH_HEAD").Call();
// push all changes
_git.Push().Call();
見た目はほとんど同じです...私が見る唯一の違いは、私のgitサーバーでは、NGitプログラムが実行されるたびに、リポジトリにプッシュされる新しいコミットがあることです。これは、同じマシンでmsysgitを介してスクリプトを実行しているだけの場合には当てはまらないようです。(つまり、ファイルが変更されていない場合、サーバー上には何も生成されません。)
ここで私が間違っていることはありますか?リベース後にローカルからリモートに何か違うものがある場合にのみプッシュする方法についての賢いアイデアはありますか?
ありがとう!