开源项目托管平台

专门用于免费存放开源项目源代码的网站,叫做开源项目托管平台。目前世界上比较出名的开源项目托管平台 主要有以下 3 个:

  • Github(全球最牛的开源项目托管平台,没有之一)
  • Gitlab(对代码私有性支持较好,因此企业用户较多)
  • Gitee(又叫做码云,是国产的开源项目托管平台。访问速度快、纯中文界面、使用友好)

Github的使用

注册Github账号

① 访问 Github 的官网首页  https://github.com/ ② 点击“Sign up”按钮跳转到注册页面 ③ 填写可用的用户名、邮箱、密码 ④ 通过点击箭头的形式,将验证图片摆正 ⑤ 点击“Create account”按钮注册新用户 ⑥ 登录到第三步填写的邮箱中,点击激活链接,完成注册

远程仓库的使用

远程仓库的两种访问方式

Github 上的远程仓库,有两种访问方式,分别是 HTTPS 和 SSH。它们的区别是: ① HTTPS:零配置;但是每次访问仓库时,需要重复输入 Github 的账号和密码才能访问成功 ② SSH:需要进行额外的配置;但是配置成功后,每次访问仓库时,不需重复输入 Github 的账号和密码 注意:在实际开发中,推荐使用 SSH 的方式访问远程仓库

基于HTTPS将本地仓库上传到Github

第一种情况:本地没有现成的Git仓库

  1. 使用终端命令创建README.md文档,并写入初始内容为project_02
echo "# project_02" >> README.md
  • 1.
  1. 初始化本地Git仓库,并将文件的修改提交到本地的Git仓库中
git init 
    git add README.md
    git commit -m "第一次提交"
  • 1.
  • 2.
  • 3.
  1. 将本地仓库和远程仓库进行关联,并把远程仓库命名为origin
git remote add origin https://github.com/用户名/project_02.git
  • 1.
  1. 将本地仓库中的内容推送到远程的origin 仓库中
git push -u origin master`
  • 1.

第二种情况:本地有现成的Git仓库

  1. 将本地仓库和远程仓库进行关联,并把远程仓库命名为origin
git remote add origin https://github.com/用户名/project_02.git
  • 1.
  1. 将本地仓库中的内容推送到远程的origin 仓库中
git push -u origin master
  • 1.

(只有第一次推送内容需要-u origin master,往后都不用了)

SSH key

SSH key介绍 SSH key 的作用:实现本地仓库和 Github 之间免登录的加密数据传输。 SSH key 的好处:免登录身份认证、数据加密传输。 SSH key 由两部分组成,分别是: ① id_rsa(私钥文件,存放于客户端的电脑中即可) ② id_rsa.pub(公钥文件,需要配置到 Github 中) 生成SSH key

① 打开 Git Bash ② 粘贴如下的命令,并将 your_email@example.com 替换为注册 Github 账号时填写的邮箱:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • 1.

③ 连续敲击 3 次回车,即可在 C:\Users\用户名文件夹\.ssh 目录中生成 id_rsa 和 id_rsa.pub 两个文件

配置SSH key ① 使用记事本打开 id_rsa.pub 文件,复制里面的文本内容 ② 在浏览器中登录 Github,点击头像 -> Settings -> SSH and GPG Keys -> New SSH key ③ 将 id_rsa.pub 文件中的内容,粘贴到 Key 对应的文本框中 ④ 在 Title 文本框中任意填写一个名称,来标识这个 Key 从何而来

检测SSH key

打开 Git Bash,输入如下的命令并回车执行:

git -T git@github.com
  • 1.

出现用户名证明已经配置成功

基于SSH将本地仓库上传到Github

将本地仓库和远程仓库进行关联,并把远程仓库命名为origin

git remote add origin git@github.com:用户名/project_02.git
  • 1.

将本地仓库中的内容推送到远程的origin 仓库中

git push -u origin master
  • 1.

将远程仓库克隆到本地

git clone 远程仓库的地址
  • 1.

Git分支

——在进行多人协作开发的时候,为了防止互相干扰,提高协同开发的体验,建议每个开发者都基于分支进行项目功能的开发

本地分支操作

查看分支列表使用如下的命令,可以查看当前 Git 仓库中所有的分支列表:

git branch //分支名字前面的 * 号表示当前所处的分支。
  • 1.

创建分支列表使用如下的命令,可以基于当前分支,创建一个新的分支,此时,新分支中的代码和当前分支完全一样:

git branch 分支名称
  • 1.

切换分支使用如下的命令,可以切换到指定的分支上进行开发

git checkout login
  • 1.

分支的快速创建和切换使用如下的命令,可以创建指定名称的新分支,并立即切换到新分支上:

git checkout -b 分支名称
     //-b 表示创建一个新分支
     //checkout 表示切换到刚才创建的新分支上
  • 1.
  • 2.
  • 3.

合并分支功能分支的代码开发测试完毕之后,可以使用如下的命令,将完成后的代码合并到 master 主分支上:

//首先切换到master分支
     git checkout master
    // 在master分支上运行如下命令
     git merge login
  • 1.
  • 2.
  • 3.
  • 4.

删除分支当把功能分支的代码合并到 master 主分支上以后,就可以使用如下的命令,删除对应的功能分支:

git branch -d 分支名称
  • 1.

遇到冲突时的分支合并如果在两个不同的分支中,对同一个文件进行了不同的修改,Git 就没法干净的合并它们。 此时,我们需要打开这些包含冲突的文件然后手动解决冲突,再提交文件就可以了

远程分支操作

将本地分支推送到远程仓库 如果是第一次将本地分支推送到远程仓库,需要运行如下的命令:(第一次推送分支需要带 -u 参数,此后可以直接使用 git push 推送代码到远程分支。)

//-U表示把本地分支和远程分支进行关联,只在第一次推送的时候需要带-u参数
      git push -u远程仓库的别名本地分支名称:远程分支名称
    //实际案例:
      git push -U origin payment :pay
    //如果希望远程分支的名称和本地分支名称保持一致,可以对命令进行简化:
       git push -U origin payment
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

查看远程仓库中所有的分支列表

git remote show 远程仓库名称
  • 1.

跟踪分支 跟踪分支指的是:从远程仓库中,把远程分支下载到本地仓库中

//从远程仓库中,把对应的远程分支下载到本地仓库,保持本地分支和远程分支名称相同
      git checkout 远程分支的名称
    //示例:
      git checkout pay
    //从远程仓库中,把对应的远程分支下载到本地仓库,并把下载的本地分支进行重命名
      git checkout -b本地分支名称远程仓库名称/远程分支名称
    //示例:
      git checkout -b payment origin/pay
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

拉取远程分支的最新的代码可以使用如下的命令,把远程分支最新的代码下载到本地对应的分支中

//从远程仓库,拉取当前分支最新的代码,保持当前分支的代码和远程分支代码一致
       git pull
  • 1.
  • 2.

删除远程分支 删除远程仓库中指定的分支

//删除远程仓库中,指定名称的远程分支
      git push 远程仓库名称--delete 远程分支名称
    //示例:
      git push origin--delete pay
  • 1.
  • 2.
  • 3.
  • 4.

Github的搜索说明

in:name xxx  名称条件
in:name xxx xxx 多个名称条件
stars:>xxx 点赞大于xxx的条件
in:readme xxx 搜索readme里的内容
fork:>xxx, 按照项目fork数量,大于xxx的
size:>=xxx,  项目大小,单位是kb
pushed:>2022-01-01, 按照最后更新的时间
language:xxx  项目使用的开发语言
user:xxx,   按作者名字进行搜索
in:description xxx   按照项目描述description 搜索
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.