Mergins, Rebasing, Cherry-pickingΒΆ

Just like with Git, GitObjectDb let you do these different operations.

// main:      A---B    A---B
//             \    ->  \   \
// newBranch:   C        C---x

connection
        .Update("main", c => c.CreateOrUpdate(table with { Description = newDescription }))
        .Commit(new("B", signature, signature));
connection.Repository.Branches.Add("newBranch", "main~1");
connection
        .Update("newBranch", c => c.CreateOrUpdate(table with { Name = newName }))
        .Commit(new("C", signature, signature));

sut.Merge(upstreamCommittish: "main");