1.下载GitExtensions并安装

安装时请注意
前者MsysGit是 Git版本控制系统在 Windows 下的版本,如果要使用Git,你的电脑上一定要有它。后者KDiff3是一款用来对文件或目录进行比较/合并的工具,在比较时它可以同时针对两个或者三个文件/目录而进行。通过比较,它将文件/目录的差异按行加以显示。同时,KDiff3 提供有自动化的合并工具,方便使用者进行有关合并的操作。如果你的电脑上已经有了类似的工具可以不用安装后者。
之后这个,选择Putty
谁能告诉我他们有什么不同吗?
之后这里我选的是第三个,第一个只装git bash,第二个是使用windows命令行工具来运行git,第三个我不太懂,Unix tools这里指什么?我选的是第一个默认的。。。
在“Configuring the line ending conversions”选项中,
 
如果是跨平台项目,在windows系统安装,选择第一个选项;
如果是跨平台项目,在Unix系统安装,选择第二个选项;
非跨平台项目,选择第三个选项。
 
2.在vs2012中安装Git Source Control Provider
工具->扩展和更新菜单
安装之后浏览器中会转到这个网址:http://gitscc.codeplex.com/documentation,是如何使用的介绍文档
3.打开Git Bash,生成ssh密钥:
输出文件路径和Private Key建议都为空( Private Key不为空时,在建立ssh访问时要输入该key)。然后到c:\user\用户名\.ssh文件夹下找到id_rsa.pub文件用记事本打开。然后全选复制到剪贴板。 
4.在osc@git中添加ssh密钥:
第一次添加的时候我出了这个错误,
于是又生成了一遍,这次没事了,在这个页面添加密钥

验证是否添加成功可以在git bash中运行以下命令:

ssh -T git@git.oschina.net
(2015.3.25日修改:这里的-T必须是大写,用小写会报错PTY allocation request failed on channel 0
如果返回
那么就ok啦
5.现在生成puTTY能用的ssh key
点击黄色文件夹图标,打开了git extensions,点击工具,选择putty,再选择生成或导入key
奇怪的是,我这里报这个错误,后来才发现是因为配置这里出错了,
在配置的SSH中
我这里不知道为什么选择的是OpenSSH,应该是PuTTY才对。
注意是点击Load,这次就没问题了。
选择之前生成的id_rsa文件(文件筛选请改为all file)
 
点击Save private key,生成了ppk文件

开始:

1.在osc@git上新建一个项目(这里命名为test),建议不自动添加.gitignore文件,因为后面会生成,可能造成local和remote的.gitignore文件冲突

2.复制remote git地址(选择SSH方式) .在该项目中打开Git Extensions,选择本地库。

选择档案库->远程档案库把网址贴上去,之后添加私钥文件,再加载SSH密钥,再测试链接。。。。

这时候有可能你会发现报错,这是因为你可能使用的是HTTP方式,应该是选择ssh地址

出现如下图像是正确的

此时点击保存即可。

3.提交更改(commit)并推送(push)

点击之后

点击提交并推送。实际上可以只提交不推送,这样可以在本地产生多次commit,但是更改不会同步到osc@git上,必须push后才能将更改上传

挺慢的,耐心等吧。。。。

最后去你的Oschina看看你的成果吧,哈哈

2015年3月2日更新:

在github的官网上已经有支持windows的github客户端出现,地址是https://windows.github.com/

VS2012使用Git并连接到osc@git的更多相关文章

  1. VS2012连接到OSC@Git

    osc终于全面开放git库了,这是我一直期待的事,也是促使我从CSDN转回OSC社区的重要原因之一.而这次我来教大家如何用osc@git来进行简单的版本控制.对于git,我自身也是近几周才开始学习,有 ...

  2. git将本地代码 和服务器git@osc 上的代码 关联

    将本地代码 和服务器git@osc 上的代码 关联 要使用git 首先,你得安装一个git 下载 http://git-scm.com/downloads 安装完成后,需要简单的配置一下,打开 Git ...

  3. Eclipse中使用git把项目导入到osc@git中

    方便Eclipse用户使用Git把项目导入到osc@git中进行管理. Eclipse Git osc@git 一.原有项目:  项目名为TestGit 二.在osc@git上面创建一个新项目库. 填 ...

  4. git上传代码到osc@git

    1.get an account 2.get a ssh-key 3.git setting git config --global user.name "...." git co ...

  5. 什么是git?window下安装git

    一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...

  6. Git详解之八:Git与其他系统

    Git 与其他系统 世界不是完美的.大多数时候,将所有接触到的项目全部转向 Git 是不可能的.有时我们不得不为某个项目使用其他的版本控制系统(VCS, Version Control System ...

  7. Git详解之三:Git分支

    Git 分支 几乎每一种版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作.在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的 ...

  8. 在Eclipse中使用git把项目导入到git中--转载

    [转载出处注明:http://www.zhangxiaofu.cn/java/commonTools/2015/0607/764.html] 一.原有项目:  项目名为TestGit 二.在osc@g ...

  9. 在Visual Studio 中使用git——给Visual Studio安装 git插件(二)

    在Visual Studio 中使用git--什么是Git(一) 第二部分: 给Visual Studio安装 git插件 如果要使用 git 进行版本管理,其实使用 git 命令行工具就完全足够了, ...

随机推荐

  1. 自定义JS控件-简单示例

    1.  业务需求: 制作 一个按钮对象,然后 像 winfrom  那样调用 就可以了: 首先 我们新建一个 MyControls的 JS文件:(插入如下代码) //这里运用的面向对象的思想 ,新建了 ...

  2. JavaScript判断变量值简单的方法

    今天在看一个动态web表单设计器的时候发现项目中的 一个写法 function sum_total(v){ if (!v) { v= 0; } } !v  这是什么写法?不过可以肯定的是,这是一种判断 ...

  3. .html(),.text()和.val()的差异总结

    .html(),.text(),.val()三种方法都是用来读取选定元素的内容:只不过.html()是用来读取元素的html内容(包括html标签),.text()用来读取元素的纯文本内容,包括其后代 ...

  4. “#if 0/#if 1 ... #endif”的作用

    1. "#if 0/#if 1 ... #endif"的作用,我们知道,C标准不提供C++里的"//"这样的单行风格注释而只提供"/* */" ...

  5. iOS-多线程之GCD(原创)

    前言 GCD 全称 Grand Central DisPath NSOperation便是基于GCD的封装 基础知识 1.GCD的优势 (1)为多核的并行运算提出了解决方案 (2)GCD会自动利用更多 ...

  6. 通过LoadRunner - Analyze详细分析页面元素请求

    众所周知LoadRunner录制某个链接,包括动态请求与js.css.jpg等静态请求. web_custom_request("动态请求", "URL=http://w ...

  7. 比Ansible更吊的自动化运维工具,自动化统一安装部署自动化部署udeploy 1.0 版本发布

    新增功能: 逻辑与业务分离,完美实现逻辑与业务分离,业务实现统一shell脚本开发,由框架统一调用. 并发多线程部署,不管多少台服务器,多少个服务,同时发起线程进行更新.部署.启动. 提高list规则 ...

  8. git之四

    1.管理修改 Git与其他版本控制系统相比,Git跟踪并管理的是修改,而非文件. 为什么说Git管理的是修改,而不是文件.接下来做测试,我们对readme.txt修改,追加一行内容: echo &qu ...

  9. Shell 编程

    Shell 是一门脚本语言(又称解释型语言),Shell 其实就是一个纯文本文件,通常以[#!/bin/bash]开始.脚本自上而下,从左至右分析并执行,其中[#]后面的为注释.脚本有以下几种运行方式 ...

  10. Autorelease返回值的快速释放机制

    + (instancetype)createSark { return [self new];}// callerSark *sark = [Sark createSark]; 编译器改写成了形如下面 ...