git使用记录

1.

(1)安装软件

下载msysgit
http://msysgit.github.io/
下载TortoiseGit
http://code.google.com/p/tortoisegit/

(2)生成密钥

点开图标

执行下面的操作生成密钥

github密钥是针对一台电脑,不是账号
github
github.ppk
github.pub

如果出现Permission denied (publickey).错误,解决方法:

进入/c/Users/xxx/.ssh/目录
将github改名为id_rsa,github.pub改名为id_rsa.pub

2. oschina

(1)用Notepad++打开第一步生成的密钥oshina-key.pub,复制SSH Key。

(2)登录oschina,点击“我的资料”,如下图所示

选择“SSH公钥”,如下图所示

点击“添加公钥”,粘帖上一步复制的密钥,即可。

如果不添加“公钥”,则git clone代码时提示如下对话框,怎么输入密码都错,最终clone失败。

(3)从oschina-key中生成.ppk文件

因为下面安装的Git图形界面客户端软件TortoiseGit可使用PUTTY通过SSH协议与Git版本库进行安全验证,所以需要生成相关公钥的ppk配置文件。操作步骤如下:
执行 puTTYgen 程序,如下图所示:


然后点击“Load”按钮,如下图所示:

找到oschina-key文件,如下图所示:

提示导入成功,点击按钮“Save private key”另存为ppk文件,如下图所示:

保存为oschina-key.ppk文件。

正确完成上述步骤,就生成了puTTY软件在SSH验证中使用的ppk格式的私钥文件。

(4)至此,就可以用TortoiseGit clone代码,提交代码等。

TortoiseGit git clone时注意要选择上一步生成的oschina-key.ppk文件,否则会出现如下提示:

,怎么输入密码都错,最终clone失败。

这样就可以成功将代码clone出来了。

注意:

项目的地址有 https方式和git@方式,由于https方式提交代码到远程仓库 每次都要输入密码,很麻烦,因此,在clone时,采用git@方式

提交代码时不需要每次输入密码了。

如果本地先创建好仓库,并添加代码,再到码云上创建项目,则可以在git工具上设置remote参数,然后执行push remote。参数如下图所示:

2. github

(1)用Notepad++打开github-key.pub,复制SSH key。

添加SSH key到自己的github帐号,如下图所示

(2)git clone

在TortoiseGit和git bash中都可以使用git clone https://github.com/d1php/test.git 或者git clone git@github.com:d1php/test.git得到项目代码。

注意:

  1. 用git clone前先登录github,否则不会出现ssh的地址,复制工程的ssh地址,例如 git@github.com:d1php/test.git
  2. 在git bash中使用git clone git@github.com:d1php/test.git出现如下错误:

Jonathan@JONATHAN-PC /e/sy/git_sy/git_bash_test
$ git clone git@github.com:d1php/test.git
Cloning into 'test'...
Warning: Permanently added the RSA host key for IP address '192.30.252.128' to
he list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

使用git clone https://github.com/d1php/test.git可以将工程的代码克隆出来。

解决办法:

用ssh -vT git@github.com测试和github的连接是否成功,最后几行的结果是:

debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /c/Users/Jonathan/.ssh/identity
debug1: Offering public key: /c/Users/Jonathan/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: Trying private key: /c/Users/Jonathan/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).

查看/c/Users/Jonathan/.ssh/目录下没有id_rsa文件,生成SSH key时指定文件名为github-key,于是将

github-key改名为id_rsa,github-key.pub改名为id_rsa.pub。

用ssh -vT git@github.com再次测试,最后几行的结果是:

debug1: Entering interactive session.
Hi wi100sh! You've successfully authenticated, but GitHub does not provide shell
access.
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
Connection to github.com closed.
debug1: Transferred: stdin 0, stdout 0, stderr 34 bytes in 0.6 seconds
debug1: Bytes per second: stdin 0.0, stdout 0.0, stderr 53.6
debug1: Exit status 1

此时尝试在git bash中git clone https://github.com/d1php/test.git,克隆成功。

参考:https://help.github.com/articles/error-permission-denied-publickey/

错误“git did not exit cleanly (exit code 128)”的解决办法

1、鼠标右键 -> TortoiseGit -> Settings -> Network

2、SSH client was pointing to C:Program FilesTortoiseGitinTortoisePlink.exe

3、Changed path to C:Program Files (x86)Gitinssh.exe

3. github连接出现port 22: Bad file number问题

原文网址:http://rangercyh.blog.51cto.com/1444712/749490

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://rangercyh.blog.51cto.com/1444712/749490

前段时间我试用了时下非常酷的代码托管站点github以及gitorious。感触颇多。

首先是我以前一直想要有这种代码托管的网站,可是直到前段时间我才知道已经有了。o(︶︿︶)o 唉,跟不上潮流啊!

其次是这些网站做得比我想要的要漂亮的多了,我最喜欢简洁明了,而这两个网站也正是如此,甚至比我想要的还要好。这里也推荐给大家使用。

顺带说明一下github是闭源的,gitorious是开源的。不管怎么样,都不错,反正我用免费的。。。。如何在局域网自己架我就不说了,自己去网站上看吧。给出它们的链接:

github:https://github.com/

gitorious:https://gitorious.org/

当然,这两个网站都是使用git版本控制工具来的,虽然我以前只使用过css,但用过git之后我觉得我以前弱爆了。。。好吧。不谈这个。。免得得罪svn和cvs党。。

不过在使用github时我遇到了点小问题。在官网里也没有说明,其实非常简单,但我想肯定会有跟我一样的菜鸟不知所措的。所以我列一下我遇到的问题。

按照github官网上Set Up Git来操作,当执行到ssh连接时,会出现我下面的问题:

“Bad file number这是个什么玩意”我当时就是这么想的。

后来我仔细研究了官网上的帮助文档,发现它提到过一个config配置文件,我当然没有创建过这个文件。于是我就google了一下,参考前人写了一个config放到rsa相同目录下:

image

image

但是我重新连接时仍然不行:

于是我怒了!!!静下来思考觉得可能是这个port 22的问题,因为我ping了一下github.com发现是可以ping通的。然后我用IceSword查看了一下端口,发现22端口是被禁掉的。原来这个22端口是默认的ssh连接端口,不过貌似这个服务有很多弱点,所以系统默认不开放。。当然,开放它是一个策略,不过既然有弱点,我还是不要去动它,那么我使用另一个端口去连接ssh就行了嘛~~~呵呵!这个新的端口不能和现在程序使用的服务端口重复,而且要确保开放,看到github的网址我想到了443端口,它是用来支持https服务的。这个端口默认开放,哈哈!!

下面我只需要修改下配置文件就可以了,如下:

image

注意Hostname修改成了ssh.github.com。接下来连接就发现一切OK了~~哈哈!

输入yes之后在rsa的路径下会生成一个known_hosts的文件

image 

打开看了就发现其实就是一个类似cookie的文件罢了:

当这个文件存在时以后就不用费劲的输入yes了,直接就连接上了

怎么样!我是不是很有才。。。。好吧。我又2了。。。

4. Macbook Sourcetree 

之前的账号用得好好的,增加新的账号老是提示如下permission错误:

Pushing to https://gitee.com/xxx

remote: [31mYou do not have permission to push to the repository via HTTPS

You do not have permission to pull from the repository via HTTPS

解决方法:

(0)SourceTree会自动记录“主机名”和“账号”的对应关系,因此码云不同的账号,同一时间只能用一个账号。

每次切换账号时,需要删除之前的账号,或者"编辑"账号,将其改为新账号

(1)先删除之前的账户信息

(2)重新push时弹出如下窗口,输入账号和密码即可

原文地址:https://www.cnblogs.com/wi100sh/p/4259069.html