1.简介

Git是一个开源的分布式版本控制系统,用于敏捷高效的处理任何或大或小的项目。它采用了分布式版本库的方式,不必服务器端软件支持。

2.Git和Svn的区别

  • 1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。

  • 2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。

  • 3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。

  • 4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。

  • 5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

3.GIT的安装配置

所需文件材料

  1. Git-2.18.0-64-bit
  2. TortoiseGit-2.6.0.0-64bit
  3. TortoiseGit-LanguagePack-2.6.0.0-64bit-zh_CN

注意:因为现在一般的电脑系统位数均为64位,所以仅提供了64位,并且版本需要自己下载。上述的三个文件,曾在多个电脑上部署,可以正常工作。
TortoiseGit是一个开放的Git版本控制系统源客户端,就像一个普通的文件服务器,因为具有界面并且能够以图示的方式显示文件和目录的变化,并能够提示何时改变了那些历史数据,改变人是谁,因此非常方便。
Git则是版本管理的基础功能,通过使用Git的命令行界面,几乎所有的功能均能在Bash命令行下得到实现。唯一的缺点就是不直观。
TortoiseGit其实就是对Git的一个封装起来的程序,用来简化Git的操作。而Language则是TortoiseGit的汉化包。

程序安装步骤

确保程序的安装顺如为Git、TortoiseGit、TortoiseGit-LanguagePack-2.6.0.0-64bit-zh_CN。
安装过程问题不大,根据提示默认安装即可。

生成SSH Keys

ssh keys是远程ssh连接的一种基于秘钥方式安全连接起来的秘钥文件。ssh keys是ssh中基于秘钥的安全验证,你可以通过创建公钥和私钥对的方式来完成ssh keys方式的ssh登录验证。首先需要执行的操作是必须在本地开发机上创建一对秘钥,并把公钥的内容放在需要访问的服务器上。如果你连接到ssh服务器上,客户端软件就会向服务器发出请求,请求用你的秘钥进行安全验证。
  服务器收到请求后,先在该服务器上的主目录下寻找你的公用秘钥,然后把它和你发送过来的公用秘钥进行比较。如果两个秘钥一致,服务器就用公用秘钥加密“质询”并把它发送给客户端软件。客户端软件收到质询之后就可以用你的私有秘钥解密再把它发送给服务器。基于ssh keys的登录验证方式可以避免假冒服务器的问题,因为假冒问题获取不到你的秘钥。它比基于用户密码的口令方式更加安全。

为TortiseGit生成SSH Keys

点击PuTTYgen即可,倘若在工作机上安装了Everything或者Listary等工具,直接搜索该文件即可。该文件的默认目录位于:

C:\Program Files\TortoiseGit\bin

在Key区域根据提示

Please Generate some randomness by moving the mouse over the blank area

  快速移动鼠标产生随机数以产生Public key。生成Key之后通过点击Save public key把公钥文件保存在当前目录[TortoiseGit\bin]下,命名为id_rsa.pub,然后点击Save private key,把私有文件保存在当前目录下,命名为id_rsa.pri即可。

注意:私有秘钥文件是需要保存的,在使用TortoiseGit克隆代码时,需要勾选私钥文件进行加载的,不然会一直提示输入Git服务器的密码

然后需要拷贝生成的公钥文件,全选区域2中的内容即可。把该内容添加到Git 服务器网页个人设置中。参见3.3节

为Git生成公钥

一个重要的问题是,git生成的公钥和TortoiseGit生成的公钥是不一致的

  在3.2.1节生成的秘钥对针对TortoiseGit客户端而言的。因此,需要为Git生成公钥。
首先需要确认你自己是否已经拥有Git秘钥。默认情况下,用户的SSH秘钥保存在~/.ssh目录下,进入该目录下,并列出其中的内容,你便可以快速确认自己是否已拥有秘钥:

$ cd ~/.ssh
$ ls
Authorized_keys2 id_dsa known_hosts
Config id_rsa_pub

需要找到一对以id_dsa或者id_rsa命名的文件名,其中一个带有pub扩展名,另一个则是私钥。.pub文件是公钥,另外一个则是私钥。如果找不到这样的文件,则可以进行下述操作生成秘钥对。在我的工作机上运行上述命令

admin@admin-PC MINGW64 ~/.ssh
$ cd ~/.ssh/

admin@admin-PC MINGW64 ~/.ssh
$ ls
id_rsa id_rsa.pub known_hosts

admin@admin-PC MINGW64 ~/.ssh
$
可以看到秘钥文件对id_rsa和id_rsa.pub
在安装Git软件之后,安装包会自动安装三个应用程序

可以通过Git Bash 或者Git GUI生成秘钥对。

3.2.2.1 Git UI生成SSH Key
  点击Git GUI应用程序,弹出如下界面

点击Help->Show SSH Key

  在点击Generate Key之后,会弹出两个对话框,直接Enter即可。全选生成的秘钥,拷贝,需要把该内容加入到Git服务器网站个人SSH Keys的设置中。可以看到通过该界面方式,程序会自动的把秘钥内容保存在目录

~/.ssh/id_rsa.pub

即,通过该方式生成的秘钥对与Git Bash生成SSH Key其实是一模一样的效果。拷贝到Git服务器个人设置的过程参见3.3

3.2.2.2 Git Bash生成SSH Key

在确保目录

~/.ssh/id_rsa.pub

不存在id_rsa和id_rsa.pub文件之后,可以通过Git bash命令行通过ssh-keygen产生秘钥对文件。
首先,在桌面或者任意文件目录下通过点击

Shift和鼠标右键

弹出如下界面:

可以看到Git GUI和Git Bash两个应用程序的入口。直接点击Git Bash即可。

admin@admin-PC MINGW64 ~/Desktop
$ cd ~/.ssh

admin@admin-PC MINGW64 ~/.ssh
$ ls
[ls命令没有列出文件,说明Git秘钥对不存在]
admin@admin-PC MINGW64 ~/.ssh
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/admin/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/admin/.ssh/id_rsa.
Your public key has been saved in /c/Users/admin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:MfdeR1XNobRSmgAIWiVPSI4vm2lIxODMrKmatFzZzV0 admin@admin-PC
The key's randomart image is:
+---[RSA 2048]----+
|. .=+o.... o o*|
|B =.+. . = o +|
| X . . o .+ o .|
|o.. + .. . |
|oo . S E. . .|
|+ = o o . .. . . |
|o* o . o . . |
|=.o |
|oo |
+----[SHA256]-----+

admin@admin-PC MINGW64 ~/.ssh
$ ls
id_rsa id_rsa.pub

admin@admin-PC MINGW64 ~/.ssh
$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1oAy1QiN9fXELTTn+ZIRk96Nz7diBrEiJeKuRtTeyUIjCzlOIxCAfP34NdzKj8FPMlHf8u0+ILNUjA26J1IJbxttef3x8IjMGNnawOmJv69SVLncfokK0QtKngzuWcnYYfffyxz4HC5D34ZrEDnicapMdIEVs4olA/O8unL+qOXrrA1gd5rG0Vc7hPHFCo/K73BJaNlxhR3PfalN7Gb0xAaAXeNw6dsHUnadSJd9nAlrn7ySh2aJF6+oGYalcAmCqkwApH/WYAX2BfjBWXg7QufwaWT5+suIdJLDuEeamjzhS0l9SAxvx9JexN0KC4MlSp4W92K8k9vONK0eCfL+h admin@admin-PC

admin@admin-PC MINGW64 ~/.ssh
$
  首先ssh-keygen会确认秘钥的存储位置(默认是./ssh/id_rsa),然后它会要求你输入两次秘钥口令。如果你不想在使用密钥时输入口令,将其留空即可。
然后拷贝id_rsa.pub文件的所有内容到Git服务器的个人设置即可,参见3.3

Git网站添加SSH Keys

使用个人的Git账户登录Git服务器网址,点击头像下方的设置,然后选择出现页面左侧的SSH密钥。

拷贝TortoiseGit和Git生成的两个公钥文件的内容拷贝。

保存两个公钥文件的内容到自己的个人设置即可

 

结果验证

登录Git服务器,然后拷贝SSH的项目URL。

进入你想要拷贝项目的文件目录,例如

D:\Git

然后点击右击空白处,选择Git Bash。键入git clone 命令如下:

admin@admin-PC MINGW64 ~/.ssh
$ git clone git@192.168.0.223:fiso/qw.git
Cloning into 'qw'...
The authenticity of host '192.168.0.223 (192.168.0.223)' can't be established.
ECDSA key fingerprint is SHA256:T/xFtMg6XVeFxyuWXohc7V6UD56eHaoTdVCkW/UsPTQ.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.223' (ECDSA) to the list of known hosts.
remote: Counting objects: 11618, done.
remote: Compressing objects: 100% (359/359), done.
remote: Total 11618 (delta 256), reused 501 (delta 192)
Receiving objects: 100% (11618/11618), 745.83 MiB | 26.62 MiB/s, done.
Resolving deltas: 100% (2642/2642), done.
Checking out files: 100% (18760/18760), done.

使用TortiseGit克隆项目

在当前目录下,右击空白处,选择Git克隆[使用Tortoise Git],运行界面如下:

点击确定之后:运行界面如下

 注意:确保勾选加载Putty秘钥

所遇问题:

Git与TortiseGit所生成的公钥私钥不同,如果想同时使用,将公钥分别加入Git服务器中。

Git和TortoiseGit的更多相关文章

  1. Git/Github + TortoiseGit 使用教程

    前言 Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. 在github上有很多优秀的项目,一个伟大的学习宝库.本文分享使用tortoisegit对github/ ...

  2. Git在tortoiseGit以及eclipse的使用方法

    一.Git安装与简单使用 1.安装git,tortoiseGit 2.创建SSH Key 打开Git Bash,然后输入ssh-keygen生成公钥和私钥: 3.生成ppk文件. 打开puttykey ...

  3. Git以及TortoiseGit的下载安装使用

    Git以及TortoiseGit的下载安装使用 下载git 下载地址:https://git-scm.com/然后进行一系列的安装,傻瓜式的操作即可 TortoiseGit Tortoise 英[ˈt ...

  4. windows安装配置git和Tortoisegit

    git github  gitlab  Tortoisegit 的概念自行百度 1. 安装git 2. 安装小乌龟:Tortoisegit  和中文包 3. 配置 4. 使用 参考: 目录 安装及配置 ...

  5. 学习笔记之Git / Gitflow / TortoiseGit

    Git - Wikipedia https://en.wikipedia.org/wiki/Git Git (/ɡɪt/) is a version control system for tracki ...

  6. Git与TortoiseGit基本操作

    Git与TortoiseGit基本操作 1. GitHub操作 本节先简单介绍 git 的使用与操作, 然后再介绍 TortoiseGit 的使用与操作. 先看看SVN的操作吧, 最常见的是 检出(C ...

  7. 在git与tortoisegit中使用openSSH与PuTTY

    问题 在使用Git与tortoisegit的时候,指定远程版本库的地址有2种方式: 使用https方式的git地址非常直接(https://xxx.oschina.net/xxx.git),基本上什么 ...

  8. windows7 64位下git和tortoisegit的安装和使用

    githttps://github.com/git-for-windows/git/releases tortoisegit安装下载https://tortoisegit.org/download/ ...

  9. TortoiseGit学习系列之Git和TortoiseGit的区别

    不多说,直接上干货! Git和TortoiseGit的区别: TortoiseGit的安装和使用依赖Git.

  10. Git学习系列之Git和TortoiseGit的区别

    不多说,直接上干货! Git和TortoiseGit的区别: TortoiseGit的安装和使用依赖Git. Git有且只有一个,就是linux最初创建的那个叫做Git的程序.现在的维护者的名字我懒得 ...

随机推荐

  1. hadoop local、伪分布 模式

    local模式: 把安装包 解压到 /usr/local  下 [hadoop@master local]$ sudo tar -zxvf hadoop-2.7.3.tar.gz   创建一个软连接 ...

  2. asp.net网站作为websocket服务端的应用该如何写

    最近被websocket的一个问题困扰了很久,有一个需求是在web网站中搭建websocket服务.客户端通过网页与服务器建立连接,然后服务器根据ip给客户端网页发送信息. 其实,这个需求并不难,只是 ...

  3. 多线程笔记 - Master-Worker

    多线程的 Master-Worker 从字面上也是可以理解的. Master 相当于领导, 一个就够了, 如果是多个, 那么听谁的, 是个大问题. Master负责指派任务给 Worker. 然后对每 ...

  4. POST注入之sqlmap

    POST注入方法一加—form跑数据库sqlmap.py -u http://59.63.200.79:8815/Pass-05/index.php —form —dbs跑出数据库后查询表名 假设库名 ...

  5. Treap总结

    \(Treap = Tree + Heap\) 树堆(Treap),在数据结构中也称Treap,是指有一个随机附加域满足堆的性质的二叉搜索树,其结构相当于以随机数据插入的二叉搜索树.其基本操作的期望时 ...

  6. 两张图搞清楚Eclipse上的Web项目目录

    从MyEclipse转到Eclipse起初有点不习惯eclipse的目录结构,顺手一查看到的文章帮助很大,转载一下: 原文链接:https://www.jianshu.com/p/91050dfcbe ...

  7. 拍摄UFP 单一职责原则

    3.1 新手机 3.2 拍摄 3.3 没用的东西 3.4 单一职责原则 就一个类而言,应该仅有一个引起它变化的原因, 3.5 方块游戏的设计 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个 ...

  8. P5840 [COCI2015]Divljak

    // powered by c++11 // by Isaunoya #include <bits/stdc++.h> #define rep(i, x, y) for (register ...

  9. 使用Arduino Nano驱动Lora模块

    使用Arduino Nano驱动Lora模块 为什么选用Lora 射频通信芯片有很多种,但是一般在同样功耗下,距离没有Lora远;同等范围下,没有Lora节能. Lora通信只适用于低速率,高延时的场 ...

  10. jQuery---事件解绑与事件触发

    事件解绑与事件触发 $("p").off("click"); $("#btn").on("click", functio ...