天天看点

git client 配置以及连接GitHub、Bitbucket

在网上(GitHub或直接Baidu)下载git client后,双击Git*.exe运行安装程序,一路按照默认选项选择下一步,安装完毕即可。

下面开始完成git的基本配置:

1. 生成ssh key

在git客户端命令行界面下,输入如下命令:

此时会提示,

Generating public/private rsa key pair.
           

并让你输入存储ssh-keygen的文件名。在此,我们使用默认文件名,因此只需直接按回车即可。

Enter file in which to save the key (/c/Users/"username"/.ssh/id_rsa):
           

接下来提示在C盘用户目录下创建了一个.ssh文件夹:

Created directory '/c/Users/username/.ssh'.
           

并提示输入密码,以及确认输入密码。在此,我们直接按回车使用默认密码即可:

Enter passphrase (empty for no passphrase):
Enter same passphrase again:
           

至此,一个新的ssh-keygen就生成了,并存储在.ssh文件夹下。

Your identification has been saved in /c/Users/"username"/.ssh/id_rsa.
Your public key has been saved in /c/Users/"username"/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:***/*** "[email protected]"

The key's randomart image is:
+---[RSA ]----+
|               %*|
|              B.&|
|              xx*|
|         x x   =+|
|        x     xxx|
|         . xxxxX+|
|        .   xxxx+|
|         .  xxxx.|
|         .cxcx.+E|
+----[SHA256]-----+
           

2. 将生成的ssh-keygen加入GitHub或Bitbucket

前提是你已经有GitHub或Bitbucket的账户了。

GitHub中,

点击右上角绿色按钮“New SSH Key”;

Bitbucket中,

Account -> Settings -> Security -> SSH keys
           

点击下方蓝色按钮“Add key”。

将“.ssh/id_rsa.pub”中的内容全部拷出,然后粘贴到对应的文本框中,保存即可。

3. 测试网站链接是否建立

在git客户端命令行中输入以下命令,测试是否能正确链接到GitHub或Bitbucket:

测试与GitHub的链接:

输入命令:

ssh -T [email protected]
           

会有如下信息提示:

The authenticity of host 'github.com ()' can't be established.
RSA key fingerprint is SHA256:********.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,' (RSA) to the list of known hosts.
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.
           

表示建立到GitHub的链接成功。

测试与Bitbucket的链接:

同样的,输入以下命令:

ssh -T [email protected]
           

会有如下信息提示:

The authenticity of host 'bitbucket.com ()' can't be established.
RSA key fingerprint is SHA256:**********.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'bitbucket.com,' (RSA) to the list of known hosts.
logged in as xxx.

You can use git or hg to connect to Bitbucket. Shell access is disabled.
           

表示建立到Bitbucket的链接成功。

注意到,此处会有1个Warning出现。如果不想有这个Warning的话,可以把GitHub或Bitbucket的IP及域名加入C:\Windows\System32\drivers\etc\hosts文件的最后。当然,这个Warning对使用是没有任何影响的。

bitbucket.com
       github.com
           

4. 个人信息配置

设置用户名和邮箱,因为git是通过检测用户名和邮箱来跟踪进行commit的用户的。

git config --global user.name "your username"
git config --global user.email "[email protected]"
           

到这里,就全部设置完成,可以开始使用啦。

当然,在GitHub中,还可以设置token。

Settings -> Developer settings -> Personal access tokens
           

找出自己token的名称,然后输入以下命令:

git config --global github.user "your username"
git config --global github.token "your token"
           

5. git的使用

我自己使用的是Bitbucket,因为可以免费private呀!

首先在自己本地主机上建立Bitbucket文件夹,专门用来存放Bitbucket的各种Respository。假设我是在D盘根目录下建立的Bitbucket文件夹。

在Bitbucket网站上新建一个Repository,名字叫firsttry。

然后在git client命令行中输入以下命令:

cd /d/bitbucket
git clone https://"your name"@bitbucket.org/"your name"/firsttry.git
cd firsttry
echo "# My project's README" >> README.md
git add README.md
git commit -m "Initial commit"
git push -u origin master
           

就创建好一个新的名字叫做firsttry的Repository。以后如果做了什么修改,也只要使用add、commit、push命令即可。

6. 本地创建repository

当然我们也可以在本地创建repository,然后上传至Bitbucket。具体步骤如下:

在bitbucket.org上创建一个repository;
在本地相应目录下创建repository,与上述Bitbucket上的repository同名(假设是/d/bitbucket/myrepo);
cd /d/bitbucket/myrepo
git init # 初始化本地仓库
git add . # 添加文件到本地仓库
git commit -m "Initial commit" # 提交文件到本地仓库
git remote add origin [email protected].org:username/myrepo.git # 关联本地库和远程库
git push origin master # 上传本地库到远程
           

这样就将本地repository与远程repository关联并合并了。

值得注意的是,必须要在bitbucket.org上创建一个repository,否则,在执行到最后一步push的时候,是会报错的。比如:

$ git push origin master
repository does not exist
fatal: Could not read from remote repository.

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

以及各种各样的错误。

在此问题上我折腾了很是一会儿。Stack Overflow上各种方法试过,都不对。最后加上第1步“创建repository remotely”,就成功啦!