GitHub前期准备


###1. 初始设置

  • 设置姓名和邮箱

$ git config --global user.name "zhaojun"
$ git config --global user.email "zhaojunhhu@gmail.com"
  • 提高命令输出的可读性

$ git config --global color.ui auto
  • 查看Git配置

$ cat ~/.gitconfig
[filter "lfs"]
	clean = git-lfs clean %f
	smudge = git-lfs smudge %f
	required = true
[user]
	name = zhaojun
	email = zhaojunhhu@gmail.com
[color]
	ui = auto
[push]
	default = simple

###2. 设置SSH Key

  • GitHub上连接已有仓库时的认证,是通过使用SSH的公开密钥认证方式进行的。创建公开密钥认证所需的SSH Key,并将其添加至GitHub。

$ ssh-keygen -t rsa -C "zhaojunhhu@gmail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/zhaojun/.ssh/id_rsa):按回车键
Enter passphrase (empty for no passphrase):输入密码
Enter same passphrase again:再次输入密码
our identification has been saved in /Users/zhaojun/.ssh/id_rsa.
Your public key has been saved in /Users/zhaojun/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:yewmWCjET1f9DqMkidGyHJfsEsOPd7GDNTzRKXtb4W0 zhaojunhhu@gmail.com
The key's randomart image is:
+---[RSA 2048]----+
|   . o oo+ .     |
| .  B =.B + .    |
|  o..&.+ B o o   |
| . o*oBo*.+ + E  |
|  . oo.+S+ * .   |
|   . o .. . .    |
|    . . o        |
|       o         |
|                 |
+----[SHA256]-----+

**id_rsa.**文件是私有密钥,**id_rsa.pub.**文件是公开密钥。

  • 查看公开密钥和私有密钥

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQ40vJ4XGwFktKFkCpCwHQDXV3/HK1gXAV50iZuixo0mJVFBSmoF5XR5I2FPPpdVCR4EqDRaJ5jMW/imEXThly81RL9ZsiLUuOXUHn34JCnVzqyvwCvAdXhq0bhQM3sqZLESYTJH6l/JE4vB9YTZzozlFWALXtahdlBEOrOj38Po/4A5QHyybhMTmQmmUcHIlP34P6JpwmAaQ8MmL5NUfjHkEweVs2AKp37PnM2BNCkrYuaCvwafZGILxR+jgPj/ZqX3aGaq4EcnDHHS4c5hDrbsNTxXKrZIvANKnDF/P2AQHw3KO5iOu4UwOl5GITH7aWMyrN5FzNIP1tVagbJRL7 zhaojunhhu@gmail.com
$ cat ~/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,CC87BF13D69D920E9991835CB9FFA81D
X+m1S4BwFGE40WPElFZtY/bn7oGi7nkMbQ/PBM2r+saCDGdP+i1VshlpgbMHXiVq
u7dS58jEmDLfDcFQRpCWNuUMzi60WeoamWSqIK1K2NEj/jrmx8QwWIydYLBDNVMY
Fxr3aHK0jMdhd2ESw6EyqlZgiqMeIDVPYDRaIrrCPXa1NnY6YKsNFNCPl+4ywq2R
uMVlVr2RuejydhE+qWR5tvXYMOhLNOGl+t596ThTqiyfxg4Xx1LuQWtRC7nWDn0E
X5siRHTea3JrGuWXBHe3ILajDhFQo2lwlp7cv1g1cmMyrLAwVNDPHENpLIJ4s+45
OPUPIeDXWZKyqln3lP7SNIAgOSB5iD4WgQFb/v1ItfW4Vq9C4ax2vD9Dn+QfX582
nGS4YSzjnTJHLO2ZQaMMgp79ODn7HEvYOpO8V4fGvSb97PArirUXK1sGSjHI5FVY
Xp5q4O0jt3xyDY91X0rP/Nu/WVFXuXZpYxW9tulcngOZ8/Y8pQTLm6SlLTJPIo0r
lEGlYsEctjSTheWeq2On57lduhsg/mwjV1vOjGHXAWnfNUHDnrS68u3tLwrM7dfS
0nkUoNAZXV/wT3ieWv2lDycUADuppuKVRGIn5P/5xMaJ3Gyyk6ed5MHvDfRKwofj
jQD6jvxcR/y2Kd6Fn4tSHBIWXn9OMiAketzGkb2l8mMBEmOly10FVYujsl9TILPn
OkW4ZNdrDlSFdd74ZTUdG1t7B3+NaR1ufmnBBXZmEq1VkNOWTF6ai8cQ0AyMF8xW
DbAB2RgWUCxXG9jfFw5F7RFGj9XTzKFK5A6oHefC6tFxHu7sQG4qz45N8Ai4/M6L
/gigY1ctmwluHLtT1X4E2npYqkhjHKNcPbPZJrJeTpURMblm7/sYrpIAIUPPyRrC
OFnXiPwo0cUMNt5rtuGHt1CikFlm6/kyiWwzKkasWsYjrndl0iWiTUQjScXJiwia
ozimA0KWfC9QqSZgN4B/+eheYlRGc/NHPSIM8X++katiIsUDaTpG0pVZ7CLWtaSg
NV5QrXAhn07FFOxdkbMwKzOYiWg7KK9gz11hhYtuPdjUK5rg2IPNA4jXadKGsEvH
r71aKfj4mO2bFXnTUngFe6sKsTiyFOiT8r52hk1ufdYL+fRsJ6Bzdw0jgUKyxtN1
wZ4n5I88niPlRJgDs5dyYVi3Akp9E5XIkwq+qy9HMjxZliG/G0oGtp9SI3PrTKq6
hp0HFjaMAcM2Axy+M/QzhTV6qfnSlqljwxQjMsKadgbxRvebIjhtWEp76nKqkq7u
aYoUXx9nxx26vs9Lz9O0MUsNsiLFNeVX0Jqdi0IyCY1iIBgpoZG3LkZP4VADrlGa
+HEIDDR1yEwM9OVk+EK6lFBdz/pIYVbI5SbehO8LAf7C01Shng1wHUlGrKg9Shak
JIQBjf+QenlEl7BA10muv1vECj3e6q0leD3LzSGSRTRc1LzqTh4ZFCts8FS5WnO7
DAb95zyN1sBBDxAiwefeGNtE5Ioxn1thF7dY/QSPMUvMChPj8eq3OPMlP2EQT7hh
jernSXaT8Ema3qWZAfz2OTO+GMluAFTWL7moCgVkgObRFQvfo7fWYNywrkRU1FoG
  • 私人密钥与GitHub认证通信

$ ssh -T git@github.com
Hi zhaojunhhu! You've successfully authenticated, but GitHub does not provide shell access.

###3. 公开代码

  • clone已有仓库

$ git clone git@github.com:zhaojunhhu/hello-world.git
Cloning into 'hello-world'...
remote: Counting objects: 10, done.
remote: Total 10 (delta 1), reused 1 (delta 1), pack-reused 8
Receiving objects: 100% (10/10), done.
Resolving deltas: 100% (1/1), done.
Checking connectivity... done.
  • 编写代码

hello-world文件夹中添加index.phpprocess.php2个文件,由于这2个文件还没有添加至Git仓库,所以显示为Untracked files。

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
  (use "git add <file>..." to include in what will be committed)
    index.php
    process.php
nothing added to commit but untracked files present (use "git add" to track)
  • 提交

index.phpprocess.php提交至仓库,文件进入版本管理系统的控制。今后的更改管理都交由git进行。

$ git add index.php process.php
$ git commit -m "Add php script"
[master cc7f6ed] Add php script
 2 files changed, 29 insertions(+)
 create mode 100644 index.php
 create mode 100644 process.php

通过git add命令将文件加入暂存区,再通过git commit命令提交。添加成功后,可以通过git log命令查看提交日志。

$ git log
commit cc7f6ed7a65c6cd2e65770bbf124bd80471473e5
Author: zhaojun <zhaojunhhu@gmail.com>
Date:   Fri Mar 4 15:49:13 2016 +0800
    Add php script
  • 进行push

通过push更新GitHub上的仓库。

$ git push 
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 605 bytes | 0 bytes/s, done.
Total 4 (delta 0), reused 0 (delta 0)
To git@github.com:zhaojunhhu/hello-world.git
   2c9c923..cc7f6ed  master -> master

Last updated