git之sourceTree操做流程


 

1x.sourceTree的使用流程 html

12.Git管理工具对比(GitBash、EGit、SourceTree) git

11.SourceTree使用SSH克隆码云项目github

 

====== web

1x.sourceTree的使用流程 

1.      安装Gitshell

下载地址:点击打开连接windows

安装指南:默认选项便可缓存

2.      安装TortoiseGit安全

下载地址:点击打开连接服务器

安装指南:点击打开连接app

11.win系统git的安装和环境变量配置;
   windows下生成github ssh公钥--ssh克隆方式提交代码?
 
最近公司准备用coding了,之前都是直接用的github,可是有时候会出现连不上的情况,因此就转移到了国内的coding,不得不说,这个肯定挺好用的,并且如今还有了更高级的功能,webIDE,可以在线编辑你的代码,是否是很爽?固然,使用它以前第一步就是要配置SSH key的公钥,下面说下windows如何生成ssh公钥:
1. 安装git,从程序目录打开 "Git Bash" 或者直接用git shell,github自带的工具
2. 键入命令:ssh-keygen -t rsa -C "email@email.com"
  "email@email.com"是github帐号,回车;
3. 提醒你输入key的名称,接着提醒你输入密码,输入如id_rsa(能够选择什么都不输入,一路回车,咱们能够敲入三个回车,默认配置;
   文件就会直接生成在C:\Documents and Settings\Administrator\.ssh\ 目录下)
4. 在C:\Documents and Settings\Administrator\下产生两个文件:id_rsa和id_rsa.pub
5. 把4中生成的密钥文件复制到C:\Documents and Settings\Administrator\.ssh\ 目 录下。
6. 用记事本打开id_rsa.pub文件,复制内容,在github.com的网站上到ssh密钥管理页面,添加新公钥,随便取个名字,内容粘贴刚
才复制的内容。
7. ^_^ OK了
须要注意步骤2中产生的密钥文件在当前用户的根目录,必须把这两个文件放到当前用户目录的“.ssh”目录下才能生效。
在windows中只能在命令行下输入建立"."开头的文件夹。命令为 mkdir .ssh
 -----
 将SSH配置到Github中 
 进入生成的SSH目录 : C:\Documents and Settings\Administrator.ssh (或者 C:\Users\本身电脑用户名.ssh)中, 使用记事本打开 id_rsa.pub文件, 将该文件中的内容复制;
 进入GitHub网站 : 登陆GitHub,选择左侧的SSH and GPG keys选项;
 itle和Keys(将上一步操做获得的SSH-Key复制进去 :)输入完成后,点击Add SSH key 
 验证是否配置成功:ssh -T git@github.com
 验证时可能让你输入YES:
   成功提示:若是出现Hi XXXX! You’ve successfully authenticated, but GitHub does not provide shell access. 就说明配置成功, 能够链接上GitHub了!
 
12.sourceTree的安装和配置(内置git插件);
    sourceTree克隆代码方式? --https和ssh克隆方式区别:
    建立本地SSH(一种传输代码的方法,速度快安全)。(也能够选择HTTPS传输)。
    
    .解释:
1.ssh-keygen 是公钥私钥的非对称加密方式: 
1.1.公钥:用于向外发布,任何人都能获取。
1.2.私钥:要本身保存,切勿给别人
2.公钥私钥加解密的原理 
2.1.客户端把本身的公钥存放到要连接的远程主机上(至关于咱们把本身的 id_rsa.pub 存放到 git 服务器上)
2.2.客户端要连接远程主机的时候,远程主机会向客户的发送一条随机的字符串,客户的收到字符串以后使用本身的私钥对字符串加密而后发送到远程主机,远程主机根据本身存放的公钥对这个字符串进行解密,若是解密成功证实客户端是可信的,直接容许登陆,不在要求登陆。
13.sourceTree克隆github代码或者码云代码报错现象?
 
 错误一:git---如何解决The authenticity of host 'gitee.com (120.55.226.24)' can't be established
 
 错误二:Git使用错误收集:-ssh agent失败 错误代码-1;ssh-agent 失败,错误代码:-1:
 
 Permission denied (publickey)错误: git远程库与本地库同步 git设置ssh公钥 Bad escape character 'ygen'

 

12.Git管理工具对比(GitBash、EGit、SourceTree)?

Git管理工具对比(GitBashEGitSourceTree

GitBash是采用命令行的方式对版本进行管理,功能最为灵活强大,可是因为须要手动输入但愿修改的文件名,因此相对繁琐。

EGitEclipseGit插件,最为纠结的一个软件,由于开发时直操做很方便,尤为是有svn开发情节的人更热衷于这样,不过EGit中有不少bug和不人性化的东西,让人吐血,因此

一句话EGit并不能解决全部Git问题,开发时必须部分依赖于其余Git管理工具。一会一一列举。

SourceTree是最近应用的一个软件,一句话归纳,既有GitBash的命令行,又有EGit的图形化管理,用户界面很人性化,Eclipse+GitBash彻底能够应付版本管理。

那么下面我结合项目中开发遇到的问题一一讲解一下:

 

<>EGit之我见:

EGit最大的好处是集成在eclipse里面,对于代码修改后提交很方便,其中我最常使用的部分是:

(1)简单的Commitpullpush

(2)Git repository(看资源库视图)(包括新建分支,切分支,合并分支)

(3)工程reset hard(强制覆盖本地版本),一些特殊状况会有问题。

(4)工程checkout到某一个分支,能够看当时的文件。

(5)工程show in history (查看工程变动历史),没有时分秒,很不爽。

 

其余的功能我用的很少,由于EGit确实有不少bug,犯过血淋淋的错误。

这里解释一下,为何第一条我要加上”简单的”,由于不少时候没有pull下来,或者没有push上去,提示的信息很粗,有时候甚至误觉得提交,发现过不少问题,因此若是肯定如今没人和你同时改同一个文件,用EGit仍是很爽的。

 

<>GitBash之我见:

通常我主要经过命令行进行pull push 还有 status的操做,这个详见我前一篇文章

Git Bash+EGit在项目中配合使用最经常使用方法总结》,命令行用好了非常很不错的,除了那种须要手写文件名的时候,比较不爽,一两个还能够,多了就吐血了。


<>SourceTree之我见:

这个是我最近才发现了一个很好的工具SourceTree,能够说SourceTreeEGitGitBash的合体,既有图形化界面又有git命令行。

(1)基本的commitpullpush都拥有,并且一旦发生错误的时候提示很准确。

(2)基本的分支管理业有,最挫的Egit删除远程分支是假删除,SourceTree完美解决了这个问题。

(3)拥有EGit中的reset(重置)和checkout(签出)两大功能,并且更加稳定。最令我怀疑的EGitreset hard也有报错的时候,哎。SourceTree仍是很稳定的。

(4) 那么最近用SourceTree,发现了一个很强大的功能,就是“丢弃”这个功能,和checkout其实原理是同样的。不过图形化界面确定比较方便了。这里具体解释一下这个功能:

 

换句话说,你改了一批文件,若是想提交一部分,保留一部分,无疑命令行最麻烦。

而后你不知足,其中有几个文件你还想回滚,不想改了。那么SourceTree最容易。

这里须要注意一下命令行中checkout 是指未add的,那么能够回滚到最近的线上的commit状态。若是add以后又修改,那么会回滚到add以后的状态。

这一个原理,在Source体现的更明显,以下:

A. 首先我先将修改后的personRiskBase.jsp拖到缓存区中(1)。

图(1

 

 

B. 而后再次修改,发现下面的工做区中也有这个页面了(图2)。

(图2

 

C. 如今就能够对此文件进行丢弃了,若是将下面文件丢弃(checkout),那么该文件将变为缓冲区中的文件,若是将缓冲区文件丢弃,实际上回到了最近的commit版本了(reset操做)

这里注意,若是该文件commit了,那么checkout实际上回不到commit以前的版本的,须要reset。下面详细介绍一下reset命令。


(5) 对于reset功能的应用。这里先普及一下Git理念的事:

A. 明确一点,每一次commit都是对应着一批操做而不是对应一个文件。

这点和SVN的设计理念彻底不同。

这也形成了一个必然的结局:SVN的分支存的是一个工程,因此每签出一个分支实际上都是签出一个工程。

Git的分支存的是修改的记录,因此每签出一个分支,实际上都是对原工程的一次覆盖。

B.在开发过程当中你们可能会遇到这样一个问题:Pull以后,会出现不少别人提交的代码须要你本地再从新提交一次,那么这个缘由是这样的,固然这个是我我的的理解:Git会把每一次pull结果作两个处理:

B1.若是pull以后,本地没有任何问题,那么不须要再次提交别人修改的东西了,只须要继续你的修改,push就能够了(正常状况下一版都是这样)。

B2.若是pull以后,本地有问题,大部分状况是冲突的状况,那么Git会把本次当作一次不成功的pull(那么通俗的来说,git会认为,你认为不成功,那么你把此次版本按照你的想法改一下,再提交吧),因此你作完删减以后,须要把刚才别人的东西再提一次做为一个新的commit

(6) 对于checkout某一次提交,SourceTree也很人性化,会给出很人性化的提示。注意checkout以后,你的工程当前不属于任何分支,不过能够基于此从新建立一个分支,很方便。

总结一下:这里只列出了一些关键的问题和不一样点,固然工具的选择因人而异。你们能够在工做中慢慢体会,若是有问题欢迎你们提出,给我宝贵的意见。

 

 

11.SourceTree使用SSH克隆码云项目?

1、HTTPS和SSH克隆方式的区别

HTTPS:每次获取fetch和推送push代码时都须要从新验证帐号和密码。(适合仅仅用来学习阅读项目代码的用户)
SSH:若是你是项目成员,就能够用这种方式,获取和推送操做时不须要再次验证帐号。须要事前在本地建立SSH Key并添加到码云中。(适合项目成员,参与项目开发)
由于HTTPS比较简单,因此这里就不讲啦。主要讲SSH方式的克隆。

2、建立添加SSH-key

打开SourceTree,操做——在终端中打开(事先要装好Git)——在这里输入命令行

一、建立:ssh-keygen -t rsa -C wdehxiang@163.com

三次回车这样就不用设置密码,免得麻烦。其中wdehxiang@163.com这个是个人注册邮箱,你改为本身的。

二、查看:cat ~/.ssh/id_rsa.pub   

查看公钥value,右键copy。也能够进入C:\Users\Administrator\.ssh用记事本打开id_rsa.pub复制公钥

三、添加:登陆码云——我的中心——修改资料——SSH公钥


四、测试:ssh -T git@git.oschina.net   
若是能够看到welcome,你的昵称,说明成功了!

五、配置:打开sourceTree——工具——选项——在SSH客户端中选择OpenSSH——完成

 

6. 特别注意:使用sourceTree报错:Git使用错误收集:-ssh agent失败 错误代码-1;

    解决方法:sourceTree设置--git--选择从本地加载git; 

3、开始克隆SSH

一、登陆码云后,进入开源项目,随意选择本身但愿导入SourceTree的一个项目。

二、进入项目后点击克隆,会看到HTTPS和SSH两种方式,首先咱们选择SSH方式,复制网址

三、打开sourceTree,点击Clone

四、克隆成功,如今能够开始操做啦。

相关文章
相关标签/搜索