Linux下使用github
基本步骤是
- 申请注册github帐号: 用户名
myusername
和邮箱mymail@gmail.com
- 创建仓库:
myrepos
- 创建本地仓库:
git clone https://github.com/myusername/myrepos.git
- 修改本地仓库
- 上传本地仓库
- 使用ssh,避免每次都输入密码
修改本地仓库
假如你先进入到你的本地仓库中,生成一个文件myfile.txt
cd myrepo
echo "hello world" >myfile.txt
生成完成之后,本地仓库并没有意识到myfile
的存在性(更准确地讲,git已经知道仓库中多了文件,只不过,需要你显式地加进来而已),因此,显式地将新文件加入进来
git add myfile.txt
export EDITOR=vim
git commit -a
git add
的作用是将文件加入到索引中(index),git commit -a
的作用是将索引中的部分提交到仓库中,这中间还会要求你写日志。它会用系统定义的编辑器(即EDITOR
)来打开日志文件,因此,你有必要先定义一个EDITOR
之后,再执行git commit
。最好是把export EDITOR=vim
写到~/.bashrc
中去,这样就不需要再管它了。
上传本地仓库
本地作了修改,就需要同步到github服务器上。命令很简单
git push origin master
这条命令会要求你输入用户名和密码,比较烦,你可以用ssh来避免这个问题。
使用ssh
首先,你要生成ssh的公钥和私钥对。公钥是给别人的,私钥自己留着,一对这样的密钥中,公钥的作用是加密,而只有匹配的私钥可以解密。这样,你去登陆别人的服务器时,对方用你的公钥加密一个随机数,然后,你解密之后再发给服务器,如果两个数相同,你的认证也就通过了。
生成密钥的命令是
ssh-keygen -t rsa -C "mymail@gmail.com"
过程中会有交互,如果你不输入密码,则ssh的认证过程是没有密码,即免密码。否则,你以后还是得输一遍密码,则避免了输服务器密码,但是要输自己的ssh密码。
然后,将自己的公钥,即~/.ssh/id_rsa.pub
文件内容,交给github。在自己的github的ssh设置页面里面,加入公钥内容即可(用个leafpad/gedit之类的记事本打开,拷到指定位置即可)。
现在,你需要确认认证是否成功
ssh -T git@github.com
它会告诉你是否成功的,否则,参见github官方文档。
现在,你和github服务器之间,相当于就达成了ssh认证的协议。但是,还有一个问题,本地仓库不知道如何用ssh啊。
因此,最后一步,你需要修改一下本地仓库。在本地仓库根目录执行
git remote set-url origin git@github.com:myusername/myrepo.git
然后,一切就都OK了。以后执行git push origin master
就不用再输命令了,当然换电脑除外(要么重新搞一遍,要么把密钥拷走)。
需要注意的是,每个仓库都有https版的链接和ssh版的链接,如果你git clone
的是https链接,则用ssh时需要显式设置,而如果你git clone
的本来就是ssh链接,则无需git remote set-url
。
git clone git@github.com:myusername/myrepo.git