libgit2sharp не может фиксировать файлы только в определенную ветку. Требуется помощь

Я клонировал репо на своем локальном диске. И был в состоянии создавать ветви, используя libgit2sharp. Ниже приведен код, который я использовал.

//Clone
var WorkDir = Repository.Clone(<git-url>, <local-path>);

//Branch create 
var branch = repo.CreateBranch("<branchName>");                     

repo.Branches.Update(branch,
    b => b.Remote = repo.Network.Remotes["origin"].Name,
    b => b.UpstreamBranch = branch.CanonicalName);

repo.Network.Push(branch);

Приведенный выше код работает, и я могу видеть ветви как в локальной папке.git, так и на сервере git.

Однако, когда я пытаюсь зафиксировать файлы в созданной ветке, они не видны в удаленном git.

Ниже приведен код.

Commands.Stage(repo, <local-clone-path-with-file>);                    
serName = System.Security.Principal.WindowsIdentity.GetCurrent().Name.Split(new string[] { "\\" }, StringSplitOptions.None)[1];

// Create the committer's signature and commit
Signature author = new Signature(userName,userName+"@atkinsglobal.com", DateTime.Now);
Signature committer = author;

string comment = timeStamp + "_" + "<BranchName>" + "_" + userName;

//// Commit to the repository
Commit commit = repo.Commit(comment+"_initial", author, committer);

Remote remote = repo.Network.Remotes["origin"];

repo.Network.Push(remote, @"refs/heads/"+<BranchName>, new PushOptions());

Обратите внимание: требование заключается в том, что файлы должны быть зафиксированы только в указанной ветке, в основной ветке не должно быть этих файлов.

1 ответ

В первом фрагменте вы создаете ветку и нажимаете на нее. Во втором вы делаете. Если вы не пропустили какой-либо код, вы ни в коем случае не переключаетесь на созданную вами ветку.

LibGit2Sharp.Commands.Checkout(repo, branch);

Как только вы это сделали, вы можете зафиксировать это и затем нажать на ветку.

Другие вопросы по тегам