6.1 使用GitHub进行代码托管
第一步:注册github账号、创建仓库;
第二步:添加SSH-key(可以针对用户账号添加,或者是针对指定仓库添加);
— 验证key是否添加成功:ssh -T git@github.com
第三步:将远程仓库克隆到本地
— [ssh://]git@github.com:github的用户名/仓库名.git
#ssh协议是git默认使用的网络协议,同时支持读写,安全性高,但不能匿名访问,读也要授权。
— https://github.com/github的用户名/仓库名.git
#https协议支持匿名访问,适用于只读的仓库、防火墙穿透强,但传输速度慢、开销大。
— git://github.com/github的用户名/仓库名.git
#git自带的网络协议,适用于不需要对读进行授权的大型项目,传输速度最快,但授权不灵活。
这里再讲一下,关于SSH公钥生成的步骤:
第一步:在本地仓库,先看用户目录下是否有:~/.ssh,如果没有,使用命令生成:
ssh-keygen -t rsa -C "abc@126.com"
#abc@126.com 是你注册github时使用的邮箱
第二步:进入.ssh文件夹内,id_rsa是私钥保存的文件,id_rsa.pub是公钥保存的文件。
第三步:私钥保存在用户目录下,SSH连接服务器时使用。公钥放到服务器上,服务器不同配置管理也不一样。
— 使用github提供服务时,将公钥可以放在用户Settings里的“SSH and GPG keys”中,
或者可以针对指定仓库,放在对应Settings里的“Deploy keys”中。
— 针对用户自己搭建的git服务器,需要在服务器上先创建git用户,
再将公钥加入到“~/.ssh/authorized_keys”文件中。
6.2 远程仓库的基本操作
克隆远程仓库
git clone repo_addr
#克隆远程仓库成功后,会自动在本地仓库添加远程仓库的相应地址信息
在本地添加远程仓库
git remote add origin repo_addr
#origin是本地仓库给远程仓库取的别名
从远程仓库拉取数据
#方式一:自动生成本地仓库master分支并跟踪远程仓库master分支
git clone origin
#方式二:仅仅是拉取,不合并到本地仓库:
git fetch #等价于git fetch origin master
#拉取到本地仓库以后,需要衍合拉取的远程分支
git rebase origin/branch_name
#方式三:自动拉取某个分支更新
git pull origin dev #注:pull = fetch + merge
推送数据到远程仓库
git push origin master
#默认是origin和master分支
查看远程仓库信息
#方式一:仅限初始化git的文件夹内,如果换个文件夹,使用该命令无效
git remote -v
#方式二
git remote show origin
删除本地的远程仓库信息
git remote rm repo_name
重命名本地的远程仓库
git remote rename old_name new_name
6.3 远程分支的基本操作
远程分支是对远程仓库状态的索引,通常使用origin/master表示。
创建远程分支
#将本地新建分支直接推送到远程仓库
git push origin local_branch:remote_branch #本地分支名:远程分支名
#远程仓库没有这个分支,将创建这个分支origin/remote_branch
#并将本地分支和远程分支建立关联,以后可以直接push
跟踪远程分支
#基于远程分支建立一个本地关联分支
git checkout -b local_branch origin/remote_branch
删除远程分支
git push origin :remote_branch
#冒号前的本地分支名不用写,运行命令后origin/remote_branch就被删除了
同步本地的远程分支
git remote prune origin
#若远程分支已被删除,使用该命令同步本地的远程分支
提交到指定的远程分支
git push origin local_branch:remote_branch
#注意要在快进模式(fast-forward)下运行该命令
查看本地和远程分支关联情况
git branch [-av]
#参数a表示查看所有分支,包含本地和远程
#参数v表示显示分支所指向的提交的详细信息,包括SHA-1和commit info