远程仓库
git是分布式版本控制系统,及一个远程仓库服务器,其他机器通过克隆远程仓库版本库到本地仓库进行工作。git远程仓库可以通过自己创建,也可以使用现有的Git仓库托管服务平台,国内的有Gitee,国外的有GitHub。
检查SSH加密
由于远程仓库与本地仓库之间需要通过ssh加密传输来实现,首先无论是Windows还是Linux中,查看用户主目录下的.ssh文件夹中有没有id_rsa
和id_rsa.pub
这两个SSH Key的秘钥对文件,如果没有进行创建。
创建SSH Key
ssh-keygen -t rsa -C "你的邮箱"
在shell中输入如上命令,回车使用默认设置,打开主目录的.ssh文件夹下就会生成id_rsa
私钥,id_rsa.pub
公钥。
GitHub
注册账号
- 打开GitHub主页,如图:
- 点击sign up,进行资料设置
SSH Key配对
通过上述注册的账号sign in登入个人主页,点开右上角头像下方的setting设置
点击进入新建一个SSH Key,并且打开主目录.ssh下的id_rsa.pub
公钥文件粘贴入key,title随意填入
如图,成功添加自己的SSH Key到git(由于GitHub默认的仓库是公开,任何人都可查看你的源码。也可通过把仓库变成私有仓库或搭建个人git服务器来仅供自己查看。)
Gitee
注册账号
由于是中文网站,所以基本都可以注册成功,哈哈。附上Gitee主页,同时国内用户推荐使用gitee,弥补GitHub的网速等各类问题。
SSH Key配对
与上述GitHub一样,注册gitee账号,点入个人中心配置SSH Key
Gitee免费版也提供免费的私有仓库,私有仓库的非仓库成员无法访问该仓库的代码和其他任何形式的资源,私有仓库最多支持 5 人协作(如拥有多个私有仓库,所有协作人数总计不得超过 5 人)
远程仓库操作
与本地仓库关联
打开个人主页,点击左上角Create a new repository进行远程添加仓库
创建完成后会提示从这个仓库克隆出新的仓库,或把一个已有的本地仓库与之关联。
在本地上的git
仓库下输入提示内容进行关联(origin是远程库的名称,可以自定义用来标识远程库名称,如同时同步到多个远程库,进行命名GitHub和gitee)
git remote add origin git@github.com:Nebula-zyx/git.git
克隆新的本地仓库
在GitHub主页中添加新的仓库
如图创建成功
在本地shell输入如下命令进行克隆远程仓库
git clone git@github.com:Nebula-zyx/demo.git
如下所示,克隆过程
Qsky8@Nebula MINGW64 /d/Users/Qsky8/Desktop
$ git clone git@github.com:Nebula-zyx/demo.git
Cloning into 'demo'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.
如上,克隆成功并在本地生成一个仓库。Git支持多种协议,默认的git://
使用ssh,但也可以使用https
等其他协议进行克隆。
推送到远程仓库
在本地仓库下使用命令将本地仓库的内容推送至远程仓库。
第一次使用如下命令进行推送(由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。)
git push -u origin master
第一次推送后
Qsky8@Nebula MINGW64 /d/Users/Qsky8/Desktop/git (master)
$ git push -u origin master
Warning: Permanently added the RSA host key for IP address '52.74.223.119' to the list of known hosts.
Enumerating objects: 9, done.
Counting objects: 100% (9/9), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (9/9), 661 bytes | 220.00 KiB/s, done.
Total 9 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:Nebula-zyx/git.git
* [new branch] master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
后续可以使用如下命令进行
git push origin master
推送后GitHub的远程仓库页面就会出现推送的内容,如图
拉取远程仓库
将远程仓库的最新信息拉取到本地仓库中
git pull origin master
查看远程仓库信息
git remote -v
使用上述命令,结果如下所示本地库已经关联了origin
的远程库,并且指向了GitHub的远程库。
Qsky8@Nebula MINGW64 /d/Users/Qsky8/Desktop/git (master)
$ git remote -v
origin git@github.com:Nebula-zyx/git.git (fetch)
origin git@github.com:Nebula-zyx/git.git (push)
删除关联的远程库
git remote rm origin
重命名关联的远程库
git remote rename <旧的名称> <新的名称>
本地创建和远程分支对应的分支
(本地和远程分支的名称最好一致)
git checkout -b <本地分支名> origin/<远程仓库分支名>
建立本地分支和远程分支的关联
git branch --set-upstream <本地分支名> origin/<远程仓库分支名>
整理分支时间线
git rebase
留言