# Git_SourceTree_Guide **Repository Path**: wang-gelin/git_teach ## Basic Information - **Project Name**: Git_SourceTree_Guide - **Description**: 用来编写git和SourceTree教程 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-04-19 - **Last Updated**: 2022-04-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SourceTree与git使用教程 [TOC] 本教程,你将学会 1、如何使用SourceTree创建和配置你的密钥(公钥和私钥) 2、如何使用fork老师的仓库,并同步老师的仓库 3、SourceTree的基本使用,克隆,创建分支,提交,推送,回滚 4、如何进行代码评审Pull Request和交作业 ## 如何使用SourceTree创建和配置你的密钥(公钥和私钥) ### 创建密钥 使用SourceTree创建密钥 打开SourceTree->顶部工具栏->工具->创建和导入SSH密钥 ![png](imageAboutMd/img1.png "") 点击Generate后,在进度条下面的空白区域(按住鼠标左键)乱画,进度条完成后生成全新的密钥 ![png](imageAboutMd/img2.png "") 上面大框框里面的是公钥 key fingerprint 密钥指纹 key comment 密钥账号(名字) key passphrase 密钥密码 Confirm passphrase 确认密钥 建议添加密码 ![png](imageAboutMd/img3.png "") Generate 创建密钥 load 导入密钥 save public key 保存公钥 save private key 保存私钥 保存你的公钥和私钥,现在你已经成功保存好你的密钥了 ### 配置密钥 #### 配置私钥 打开SourceTree->顶部工具栏->工具->选项 ![png](imageAboutMd/img4.png "") 如图,密钥格式有两个格式类型 PuTTY/Plink是.ppk格式的密钥,上面用SourceTree创建的密钥就是.ppk格式 OpenSSH是你在cmd中使用ssh-keygen指令生成的密钥格式 在SSH 密钥:中点击 ... 找到你之前保存的私钥,选择就行了 #### 配置公钥 打开SourceTree->顶部工具栏->工具->创建和导入SSH密钥 选择load,导入之前你保存的私钥(可以是.ppk的,也可以是ssh-keygen生成的) ![png](imageAboutMd/img2.png "") 然后你就得到这个界面,上面大框框里的就是你的公钥 复制好 打开你的gitee 右上角点击你的头像->设置 ![png](imageAboutMd/img5.png "") 左边栏目中->SSH公钥 ![png](imageAboutMd/img6.png "") 点击后,把公钥粘贴到公钥框里面,同时起个标题,点击确定 ![png](imageAboutMd/img7.png "") 好了,现在你的公钥也配置完毕 ## fork和同步 ### fork操作 打开你的gitee 顶部栏目中的选择我的,选择企业 进入页面->选择代码 ![png](imageAboutMd/img9.png "") 选择你要fork的仓库 ![png](imageAboutMd/img10.png "") 选完后,选择右上角fork进行fork操作 ![png](imageAboutMd/img11.png "") 选择你个人 ![png](imageAboutMd/img8.png "") 现在你已经成功fork仓库 ### 同步操作 打开你fork成功的仓库 第一种方法:顶部栏目中的选择我的,在仓库一栏哪里找到你的仓库 第二种方法:顶部栏目中的选择我的,选择企业->进入页面->选择代码->选择你fork的仓库->点击右上角fork右边的数字 ![png](imageAboutMd/img11.png "") 进入页面后在下面一栏可以看见fork这个仓库的所有人,找到你的,点击仓库的名字(不要点头像)进入 ![png](imageAboutMd/img12.png "") 上面的仓库名字右边的![png](imageAboutMd/img13.png "")就是你的同步按钮 同步完毕后,看看homeworks有没有改变,因为有人乱在原始仓库上建立分支,如果出现,在你的本地仓库,强制推送homeworks分支以覆盖远端仓库 ## SourceTree的基本操作 打开SourceTree主页面,在上面,点击加号![png](imageAboutMd/img16.png "") 进入这样的页面 ![png](imageAboutMd/img14.png "") local 浏览你的仓库 Remote 远端仓库 本教程不教 clone 克隆 从云端克隆一个仓库到本地 add 添加 添加本地已有的一个仓库到你的SourceTree上 create 创建 创建一个新仓库 ### 创建一个仓库 在本地建立一个全新的仓库 点击上面的Create,进入这样的页面 ![png](imageAboutMd/img15.png "") 第一行:你存放仓库的位置 第二行:你仓库的名字 创建,完成 ### 克隆云端仓库到本地 打开你gitee上面的仓库 请确保仓库名前缀是你的账号,不是企业账号 选择 克隆/下载 ->SSH->复制(请确保您的公钥和私钥配置成功)这就是你的远端仓库ssh地址 ![png](imageAboutMd/img17.png "") 打开SourceTree,选择开头提到的clone ![png](imageAboutMd/img18.png "") 第一行,粘贴远端仓库的ssh地址 第二三行相当与创建仓库的第一二行。 完成 ### 分支 打开你的SourceTree上的仓库 选择左边WORKSPACE下面的History,右边就会显示你本地的所有分支,选择其中你要出现分支的位置(选中会变蓝) ![png](imageAboutMd/img20.png "") 点击上方的分支->新分支->起好名字,创建 ![png](imageAboutMd/img19.png "") 就会在你选中的位置上产生一个新分支,新分支和选中的位置一模一样 我们要在最新的master分支上创建一个新分支homeworks,用于放置我们的代码 在左边的一栏 ![png](imageAboutMd/img21.png "") 分支一栏是你本地的所有分支,黑深色前面加圆圈就是你当前所在的分支,双击可以切换分支 远端一栏origin下面是你远程仓库上面的所有分支 ### 提交和推送 提交: 选择你要提交的分支,点击选择左边WORKSPACE下面的文件状态,或者点击提交按钮 ![png](imageAboutMd/img23.png "") 右边出现这样的页面 ![png](imageAboutMd/img22.png "") 左边上下两栏是已暂存文件和未暂存文件 右边在你点击任一文件后,就可以知道你修改了什么 点击未暂存文件的加号,就会把文件添加到上面,你也可以点击暂存所有和暂存所选来批量暂存 底下的边框,用来输入你这次提交修改了什么,删除了什么,增加了什么 如何勾选了立即推送,则在提交的同时把代码推送到远端仓库 推送: 点击推送 ![png](imageAboutMd/img23.png "") 选择你要推送的分支 左边是你的本地分支,右边是远端分支 如何是本地新分支,可能右边需要新建一个分支 ![png](imageAboutMd/img24.png "") 勾选你推送的分支,点击推送即可 ### 回滚操作 打开你的SourceTree上的仓库 选择左边WORKSPACE下面的History,右边就会显示你本地的所有分支,选择其中你要回滚到的位置(选中会变蓝)->右击->选择重置当前分支到此次提交 ![png](imageAboutMd/img25.png "") 有三种选项 ![png](imageAboutMd/img26.png "") 软合并 将此次提交回滚到指定提交位置,但这个过程中会将修改过的文件暂存到暂存区。 混合合并 混合合并是指将此次提交回滚到指定的位置,但这个过程中不会将修改过的文件暂存到暂存区,而是将修改过的文件存放在未暂存文件区。 强制合并 当前的文件会全部倒退会这个版本 详细内容参考这个 https://blog.csdn.net/cobek/article/details/110426141 ## 代码评审Pull Request 进入你gitee上的仓库 ![png](imageAboutMd/img12.png "") 点击 +Pull Request 进入这个页面 源分支是你的分支,通常交作业选择homeworks分支 目标分支是你fork的仓库,通常选择homeworks_teacher分支 ![png](imageAboutMd/img27.png "") ![png](imageAboutMd/img28.png "") 在下面的标题输入你这次评审(交作业)的事(比如完成了哪个实验) 点击底部的创建Pull Request完成