2016-04-11 4 views
1

Я использую LigGit2Sharp. Я попытался с помощьюКаков самый простой способ вернуть все коммиты на git, чтобы овладеть веткой, которая еще не была объединена?

foreach (Commit commit in repo.Commits) 
{ 
    foreach (var parent in commit.Parents) 
    { 
     //Console.WriteLine("{0} | {1}", commit.Sha, commit.MessageShort); 
    } 
} 

Однако это показывает все коммиты истории ...

ответ

3

То, что вы хотите сделать, это создать отфильтрованный список (ICommitLog) между двумя commit-ish (зафиксируется, деревья, теги, ...).

Это пример получения всех коммитов между концом двух ветвей; «ведущая» ветвь и ветвь исправления ошибок, внесшая в нее изменения, но еще не объединенные до «ведущего»:

public ICommitLog CommitList { 
    get { 
     var filter = new CommitFilter { 
      SortBy = CommitSortStrategies.Reverse | CommitSortStrategies.Time, 
      Since = repo.Branches.Single (branch => branch.FriendlyName == "bugfix1234"); 
      Until = repo.Branches.Single (branch => branch.FriendlyName == "master");   
     }; 
     return repo.Commits.QueryBy (filter); 
    } 
} 
Смежные вопросы