Skip to content

项目托管平台

  • 国外的项目托管平台有GitHub,最大的开源项目托管平台,但是国内访问可能速度比较慢,同时发布私有项目需要收费
  • 国内的项目托管平台,在我们发布私有的项目时往往使不收费的,同时网络的访问速度较快

GitHub

GitHub的基本使用:

  1. 注册一个GitHub账号

  2. 新建项目

    1. 输入项目名和项目的描述信息,如果后续操作什么都不选点击创建项目,这样GitHub中存储的这个项目没有任何的提交,里面会有一些提交提交
    2. 输入项目名和项目的描述信息,如果后续选择添加了README文件(项目的介绍文件,别人打开你项目的主页后出现的介绍文档)和确定忽略文件和相关开源协议,再点击创建项目,这样是没有提交提示的,因为系统默认的进行了一次项目的初始提交,包含了协议文件LICENSEREADME文件和忽略文件.gitignore
  3. GitHub进行连接

    连接GitHub的方式有两种:httpsssh方式,推荐使用ssh(远程无密码连接)的方式,使用该方式可以再连接的时候不需要输入我们GitHub的账号和密码,但是我们要配置我们的ssh密钥后才能进行连接

    • GitHub添加ssh密钥
      1. 生成ssh密钥:ssh-keygen -t rsa 后续一直按回车即可
      2. 进入以下文件cd ~/.ssh,打开id_rsa.pub文件,将其内容进行复制
      3. GitHub网站中点击头像-->Setting-->SSH and GPS keys-->将复制的密钥进行添加
      4. 之后我们就可以直接使用ssh进行克隆项目了,git clone下来的项目与远程服务器自动的进行连接了,在本地新建文件后,通过add将文件放到本地缓存区,通过commit将文件提交到本地仓库,最后通过git push将文件提交到远程仓库中,如果连接不上远程仓库,可以将~/.ssh目录下的known_hosts文件中的全部内容进行删除,这些数据是缓存的数据,再进行操作就可以连接上远程的服务器了

推送本地仓库代码到远程仓库

GitHub远程克隆下来的项目不同,现在是以本地的项目开始

  1. 初始化仓库:git init

  2. 创建文件-->git add .将其放入本地缓存区-->commit提交到本地仓库

  3. 连接远程仓库:git remote add origin git@github.com:jin/pyqt5.git

    git@github.com:jin/pyqt5.git这个仓库是在GitHub远程创建好的一个空项目

  4. 查看远程服务器的关联信息:git remote -v

  5. 首次推送到远程仓库(向master分支进行推送):git pull -u origin master

  6. 后续推送使用: git push

分支的管理

  • 显示所有分支,包括远程分支:git branch -a

    列出所有远程分支:git branch -r

    远程分支一般为红色的显示,并且前缀为remotes,如:remotes/origin/master

  • 在本地创建一个分支并跳转到该分支下:git checkout -b 分支名

    本地的分支没有与远程分支进行关联,是不能向远程进行push

  • 本地分支与远程分支进行关联并推送:git push --set-upstream origin 分支名

    这样在远程就创建了一个同分支名的分支,进行接收该分支本地推送来的内容

场景例子:目前有一个功能在ui分支中进行开发,我是一个新加入开发的员工,需要将该分支下的项目代码拿到个人的开发电脑中

  1. 克隆代码:git clone ssh复制的内容

  2. 进入到克隆下来的文件中:cd ui-change

  3. 查看分支:git branch -a

  4. 将远程的分支同步到本地对应的分支中:git pull origin ui:ui

    这样就在本地创建了ui分支,其代码和该分支的远程的代码一致

  5. 推送到远程仓库:git push --set-upstream origin ui

远程分支的合并

当新建的分支功能实现完后,我们需要将该分支的代码放到master主分支中,在把该分支删除,这个过程就是远程分支的合并:

  1. 切换分支到主分支:git checkout master

  2. 将本地master分支的内容更改成最新的状态:git pull

  3. 切换到功能实现的新分支:git checkout ui

  4. 将新分支的基准点移动到master主分支的最新位置:git rebase master

  5. 切换分支到主分支:git checkout master

  6. 合并功能分支内容到主分支:git merge ui

  7. 推送到远程服务器:git push 这样远程分支master就将远程分支ui的内容合并过来了

  8. 查看已经合并的分支:git branch --merged

  9. 删除远程分支:git push origin --delete ui 这样远程分支就不存在了

    同时我们也应该删除本地的分支:git branch -d ask

Released under the MIT License.