nodegit签出和切换(远程)分支

时间:2018-09-05 05:59:56

标签: javascript node.js git nodegit

当我使用git(终端)克隆存储库,然后使用nodegit对远程开发分支进行签出时,它就可以正常工作。
但是我遇到了一个问题,当我想切换回带有提供的example的远程主分支时,我无法弄清楚。

使用SSH克隆

git clone git@mygit.com/projects/myproject.git

使用以下代码开发开发结帐,但由于master分支已在本地存在,因此不适用于切回。

git.Repository.open(appDir)
   .then((repo) => {
       return repo.getHeadCommit()
                  .then((targetCommit) => {
                      return repo.createBranch(repositoryConfig.branch, targetCommit, false);
                  })
                  .then((reference) => {
                      return repo.checkoutBranch(reference, {});
                  })
                  .then(() => {
                      return repo.getReferenceCommit('refs/remotes/origin/' + repositoryConfig.branch);
                  })
                  .then((commit) => {
                      git.Reset.reset(repo, commit, 3, {});
                  })
                  .catch((err) => {
                      reject(err);
                  });
   })
   .then(() => {
       resolve('Checking out branch ' + repositoryConfig.branch + ' done');
   })
   .catch((err) => {
       reject(err);
   });

我使用此代码进行了尝试,该代码将我的本地副本重置为master分支,但不“关注”它,因为pull告诉我,我是X提交对象,我应该进行一次pull

git.Repository.open(appDir)
   .then((repo) => {
       return repo.getBranch('refs/remotes/origin/' + repositoryConfig.branch)
                  .then((reference) => {
                      return repo.checkoutBranch(reference, {});
                  })
                  .then(() => {
                      return repo.getReferenceCommit('refs/remotes/origin/' + repositoryConfig.branch);
                  })
                  .then((commit) => {
                      git.Reset.reset(repo, commit, 3, {});
                  })
                  .catch((err) => {
                      reject(err);
                  });
   })
   .then(() => {
       console.log('Checking out branch ' + repositoryConfig.branch + ' done');
       resolve();
   })
   .catch((err) => {
       reject(err);
   });

repositoryConfig.branch中,我将分支设置为启用切换。

我还不完全了解git以及如何附加/分离HEAD,反之亦然。
因此,感谢您的帮助。

0 个答案:

没有答案