内容纲要

远程仓库

git是分布式版本控制系统,及一个远程仓库服务器,其他机器通过克隆远程仓库版本库到本地仓库进行工作。git远程仓库可以通过自己创建,也可以使用现有的Git仓库托管服务平台,国内的有Gitee,国外的有GitHub

检查SSH加密

由于远程仓库与本地仓库之间需要通过ssh加密传输来实现,首先无论是Windows还是Linux中,查看用户主目录下的.ssh文件夹中有没有id_rsaid_rsa.pub这两个SSH Key的秘钥对文件,如果没有进行创建。

创建SSH Key

ssh-keygen -t rsa -C "你的邮箱"

在shell中输入如上命令,回车使用默认设置,打开主目录的.ssh文件夹下就会生成id_rsa私钥,id_rsa.pub公钥。

GitHub

注册账号

  • 打开GitHub主页,如图:

github主页

  • 点击sign up,进行资料设置

sign up

SSH Key配对

通过上述注册的账号sign in登入个人主页,点开右上角头像下方的setting设置

设置

点击进入新建一个SSH Key,并且打开主目录.ssh下的id_rsa.pub公钥文件粘贴入key,title随意填入

新建key

粘贴key

如图,成功添加自己的SSH Key到git(由于GitHub默认的仓库是公开,任何人都可查看你的源码。也可通过把仓库变成私有仓库或搭建个人git服务器来仅供自己查看。

添加完成

Gitee

注册账号

由于是中文网站,所以基本都可以注册成功,哈哈。附上Gitee主页,同时国内用户推荐使用gitee,弥补GitHub的网速等各类问题。

SSH Key配对

与上述GitHub一样,注册gitee账号,点入个人中心配置SSH Key

gitee SSHKey

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
最后修改日期:2020年7月26日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。