如何在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 功能(如checkout
、branch
等)而不是使用 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 2019 中使用 git bash 终端配置文件?
如何配置 Visual Studio 代码以在保存时提交到 git?
如何在 Visual Studio Code 中推送 Git 标记?