如何在Visual Studio中配置git

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Visual Studio中配置git相关的知识,希望对你有一定的参考价值。

Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不讨论),但是SSH有客户端服务器端,所以在windows下的开发要把自己的Git仓库共享出去的话,就必 须做SSH服务器。
一、安装GIT
Windows下使用msysgit,
本文使用Git-1.7.8-preview20111206.exe 安装要点步骤
安装完成后,可以使用Git bash在命令行模式下操作git

二、安装CopSSH

安装CopSSH之前先确保防火墙开启了SSH端口,这个虽然不影响CopSSH的安装,但是影响SSH访问,所以写在前面。
CopSSH是windows下的SSH服务器软件,下载地址baidu之,本文使用的是Copssh_4.1.0_Installer.exe,
安装完成后,到控制面板中新建一个管理员账户root,用这个账户来共享SSH。然后你在账户管理中会看到之前的SvcCOPSSH账户。
将root用户添加到CopSSH用户中,为简单操作,允许使用密码认证方式
若是不允许密码认证,则需要使用公钥密钥方式认证,
三、CopSSH中使用GIT

现在已经安装GIT和CopSSH,接下来需要做的就是让CopSSH可以使用GIT的命令,这样不仅能够远程SSH管理GIT服务器,而且可以将GIT仓库通过SSH共享。具体的操作方法是将GIT的某些命令程序和动态链接库复制到CopSSH安装目录下即可。

l 将$ Git\libexec\git-core目录下的git.exe , git-receive-pack.exe , git-upload-archive.exe , git-upload-pack.exe复制到$ICW\bin目录下

l 将$Git\bin目录下的libiconv-2.dll复制到$ICW\bin目录下

重启CopSSH即可
参考技术A 作为程序员必备工具——Git,在Visual Studio的软件开发过程中,少不了要对程序进行版本控制,代码管理。为了方便将Visual Studio中的代码上传至GitHub或其他git服务器,可以使用git插件。
http://jingyan.baidu.com/article/3a2f7c2e05273926afd6118d.html

如何在 Visual Studio 代码中访问 git 的 api

【中文标题】如何在 Visual Studio 代码中访问 git 的 api【英文标题】:How to access the api for git in visual studio code 【发布时间】:2018-03-12 16:52:22 【问题描述】:

我想在我的一个扩展中使用 vscode git api 来执行 git clone 和其他任务。它可以从 vscode api 访问吗? 代码在这里..api

【问题讨论】:

我也有同样的疑惑……在docs 中,关于 git api 只有两个 (2!) 项。当我查看我经常使用的两个 Git 扩展(gitHistoryVSCode、vscode-gitlens)的代码时,我注意到作者从头开始编写基本的 git 功能(如 checkoutbranch 等)而不是使用 VSCode 中一些已经内置的 git 功能。 这里也一样,显然没有这方面的消息。回购中的这个开放问题似乎试图使扩展的 API 可用:github.com/Microsoft/vscode/issues/31103 【参考方案1】:

推特来救援! 我在那里问过,并指出了这里的 API 定义:https://github.com/Microsoft/vscode/blob/master/extensions/git/src/api/git.d.ts

...这里有一个例子:https://github.com/Microsoft/vscode-pull-request-github/blob/master/src/extension.ts#L53

// Import the git.d.ts file
import  API as GitAPI, GitExtension, APIState  from './typings/git'; 

const gitExtension = vscode.extensions.getExtension<GitExtension>('vscode.git').exports;
const api = gitExtension.getAPI(1);

const rootPath = vscode.workspace.rootPath;
const repository = api.repositories.filter(r => isDescendant(r.rootUri.fsPath, rootPath))[0];

【讨论】:

导入GitExtension的导入行是什么? 你能澄清一下这段代码吗?这很令人困惑,但是,我尝试了但无济于事......【参考方案2】:

在 vscode 扩展中使用 git api 的示例代码:

const gitExtension = vscode.extensions.getExtension('vscode.git').exports;
const api = gitExtension.getAPI(1);

const repo = api.repositories[0];
const head = repo.state.HEAD;

// Get the branch and commit 
const commit,name: branch = head;

// Get head of any other branch
const mainBranch = 'master'
const branchDetails = await repo.getBranch(mainBranch);

// Get last merge commit
const lastMergeCommit = await repo.getMergeBase(branch, mainBranch);

const status = await repo.status();

console.log( branch, commit, lastMergeCommit, needsSync: lastMergeCommit !== commit );

您还必须更新 package.json 中的 extensionDependencies:

"extensionDependencies": [
    "vscode.git"
  ]

【讨论】:

仅供参考,我决定使用 simple-git npm 模块而不是依赖 git 扩展。【参考方案3】:

根据the extension API,访问其他扩展提供的API:

当依赖于另一个扩展的 API 添加一个 extensionDependencies-进入package.json,并使用 getExtension-function 和 exports-property,如下所示:

let mathExt = extensions.getExtension('genius.math');
let importedApi = mathExt.exports;

console.log(importedApi.mul(42, 1));

【讨论】:

以上是关于如何在Visual Studio中配置git的主要内容,如果未能解决你的问题,请参考以下文章

如何在Visual Studio中配置git

如何在 Visual Studio 2019 中使用 git bash 终端配置文件?

如何配置 Visual Studio 代码以在保存时提交到 git?

如何在 Visual Studio Code 中推送 Git 标记?

如何在 Visual Studio 代码中访问 git 的 api

如何在 Visual Studio 2015 中从 Git 获取特定版本?