GitHub是什么
GitHub既是一个大型的git服务器,以便用户上传自己的项目到上面(当然包括git的提交记录);也是一个成千上万开发者和项目能够合作进行的中心,在那里,你可以找到任何你想要的东西。很多世界著名的项目都开源在GitHub上,比如Linux Kern源码,VSCode源码。
我是把它当作一个git服务器来备份项目的(如果只是这样,有很多其他平台可以代替,比如Gitee、GitLab),因为其他功能暂时用不上。
注册GitHub账号
先到GitHub的主页,输入用户名进行注册。
新建GitHub项目
要把本地的项目上传到GitHub,必须先在GitHub上建立一个项目。
输入项目的名称何描述,选择项目是公开的还是私密。若公开,则所有人都能看到你的代码和修改历史,且可以你的项目复制一个副本到他的GitHub账户下进行编辑;若私密,则只有你自己可以看到。以前的私密项目是收费的,但是在微软收购GitHub后,就免费了。README文档里的内容会出现在你的项目主页上,让进入你项目主页的人更详细了解你的项目,可以在建项目时加入README文档,也可以在以后随时加入。填写完信息,点击绿色的新建项目按钮即可。
推送本地项目到GitHub
可以直接在GitHub的网页上上传文件和修改,但是这个做法比较傻,一般都是直接在本地推送到GitHub的服务器。
首先,到GitHub项目主页上复制项目链接
在本地把这个链接加入到git的远程(remote):
git remote add origin https://github.com/cuncinc/Default.git
其中,origin是通俗的写法,表示这个分支是在上游的源头。当然,也可以把origin换成其他名称,但是要记得,因为每次推送(push)的时候都要用到。
然后,就可以进行推送了:
git push origin master #把本地的master分支推送到origin,这里origin用前面remote的命名代替
Username for 'https://github.com': #输入GitHub账户名或邮箱
Password for 'https://[email protected]': #输入密码,在输入时没有提示符,但确实在输入
因为GitHub的服务器在国外,所以有时候会连不上去。
刷新GitHub的项目主页,可以看到上次提交的文件已经被推送上来了,还有提交的信息注释。
设置SSH key
难道每次推送都要输入一次GitHub的账号和密码吗,这岂不是很麻烦?
当然有解决方法。
获取本地SSH key
首先要在本地检查是否已经存在SSH key:
ls ~/.ssh #Linux和Windows平台通用(win可在PowerShell或git bash下执行)
若无:
No such file or directory #类似提示就是没有
则生成新的key:
ssh-keygen -t rsa -C "你的邮箱地址" #linux和win通用,注意-C是大写
然后无脑三个回车即可生成。现在已经有key,可以继续往下看。
若有:
id_rsa id_rsa.pub known_hosts known_hosts.old #列出id_rsa等几个文件则说明有
复制id_rsa.pub
里的内容(用你喜欢的方式即可):
cat ~/.ssh/id_rsa.pub #把id_rsa.pub的内容打印到屏幕上,全选复制
设置SSH key
先在GitHub的账号设置(Settings)里,进入SSH and GPG keys栏,点击右上角的New SSH key按钮。
填一个合适的Title,把从id_rsa.pub
复制出的内容填到Key处,点击Add SSH key按钮。
用SSH连接上传
此时,在用git push
时,若不想输入账号和密码,需要使用SSH连接的方式来推送。
到项目主页复制SSH链接。
删除本地之前设置的HTTPS连接方式,并用SSH的方式进行推送:
git remote rm origin #把之前的命名删除
git remote add origin [email protected]:cuncinc/Default.git #用ssh方式连接
git push origin master
#也可以 git push [email protected]:cuncinc/Default.git master
Summary
-
下载并安装git,用
git --version
测试是否安装成功。 -
配置git环境。
git config --global user.name "你的用户名" git config --global user.email "你的邮箱" git config --global core.editor "你习惯的编辑器"
-
切换到工作目录,执行
git init
建立git仓库。 -
执行
git add .
把文件纳入跟踪。 -
提交修改。
git commit -m "你的提交信息注释"
-
推送到git服务器。
git remote add origin "你的git服务器地址" git push origin master