1、首先得有一个GitHub账号
2、然后在设置(setting)里面设置好ssh公钥(这个是在GitHub里面系统打开文件的钥匙,一个公钥对应你自己的一个Git管理库——Git库一个人可以有无数个,只要你邮箱有无数个,当然在GitHub里面设置ssh也能设置多个公钥,就看你想在电脑端打开哪个git库)。公钥私钥获取,在Git命令里面写(下面“”里面是自己邮箱):
$ ssh-keygen -t rsa -C "youremail@example.com"
然后在本地就有一个.ssh文件,找到它,里面有id_rsa
和id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人。最后登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub
文件的内
3、创建远程库,一开始GitHub里面自己一个远程库都没有,点击右上角+号,选“new repository”然后写上题目(其实就是这个远程库的名称),其他默认就行。
4、使用Git的命令把Git里面的版本库添加到远程库,用下面的命令,请千万注意,把上面的michaelliao
替换成你自己的GitHub账户名,否则,你在本地关联的就是我的远程库,关联没有问题,但是你以后推送是推不上去的,因为你的SSH Key公钥不在我的账户列表中。然后代码中“learngit”是本地Git库里面其中文件的名字,这个文件代表一个版本库,写进去就是把“learngit”这个版本库添加到远程库(GitHub)里。
$ git remote add origin git@github.com:michaelliao/learngit.git
5、当你在一台机器上要查阅在另一台机器上的文件(版本库)时,除非在那台机器上有人操作把文件手动发给你,否则就需要远程库来提取这个版本库(文件)——就是所谓的远程克隆,用下面这个命令,即可把远程库的所有内容克隆至本地。同样的“gitskills”是GitHub上远程库的名字,你对应的想克隆哪个远程库就写哪个;michaelliao是
GitHub账户名(写你自己的)。
$ git clone git@github.com:michaelliao/gitskills.git
6、以后想方便自己在别的电脑上修改文件版本或者想实时共享文件版本就每次改动完就用 Git命令再次添加到远程库,如果不重新添加远程库,那这个文件的版本在远程库就永远不会更新。
7、推送分支。就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上:
$ git push origin master
如果要推送其他分支,比如dev
,就改成:
$ git push origin dev
但是,并不是一定要把本地分支往远程推送,那么,哪些分支需要推送,哪些不需要呢?master
分支是主分支,因此要时刻与远程同步;dev
分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
8、从远程库clone时,默认情况下,你只能看到本地的master
分支。如果想让别人或者自己在远程库克隆能看到其他修改分支,那就得根据第7点的方法一一把分支推送。
9、推送分支遇到冲突。同一个分支里的修改在推送到远程库是,如果恰巧别也已经修改过,重新合并分支了,那么可能就会和你的推送有冲突。我们要先用git pull命令(
如果这个命令失败,假设现在处理的分支对象是dev,
原因是没有指定本地dev
分支与远程远程库分支的链接——如下代码
$ git branch --set-upstream-to=origin/dev dev
)
把最新的提交从远程库上
抓下来,然后,在本地合并,解决冲突,再推送。
10、在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name
,本地和远程分支的名称最好一致
11、远程库的标签管理:
-
命令
git push origin <tagname>
可以推送一个本地标签; -
命令
git push origin --tags
可以推送全部未推送过的本地标签; -
命令
git tag -d <tagname>
可以删除一个本地标签; -
命令
git push origin :refs/tags/<tagname>
可以删除一个远程标签