系统版本: 10.12.6
SourceTree版本:2.3.1 (中文版)SourceThree安装包 密码:9jc3 传送门
目录
1.创建gitHub账号和仓库
2.sourceTree管理gitHub仓库and简单使用
3.sourceTree解决问题的方法
4.sourceTree常见报错
1.创建gitHub账号和仓库
如何申请gitHub账号创建仓库在另一篇文章有 创建gitHub账号和仓库传送门
2.sourceTree管理gitHub仓库and简单使
打开SourceTree点击 +新仓库 选择 从URL克隆


粘贴在GitHub创建仓库的URL,SourceTree自动帮我们生成目标路径也就是本地地址以及名称

添加仓库成功

现在需要往我们创建的GitHub仓库中添加项目,首先点击在finder中打开 随便往里面放一个项目 关闭 文件界面回到我们SourceTree界面 点击文件状态 会看到刚才添加的项目


当项目中文件内否有所改变时 就会显示在此

点击未暂存文件 回到已暂存文件中 意思是我们允许提交到仓库 现在就可以提交 至GitHub仓库

点击提交 在文件状态 右边会提醒有多少文件有所改变

第一次提交会让输入账号密码

提交成功 会先提交至我们的本地仓库 点击推送(Push) 就会提交到GitHub仓库


创建分支 成功创建过分支以后 直接推送到GitHub仓库(跟上面的push一样) 就可以在GitHub中可以看到

合并分支

如何参入开源项目
以AFN为例 AFNetworking
点击右上角fork 如果我们想要修改别的开源项目 需要先fork开源项目 到我们的账户中 才可以修改

fork结束 将账号中的AFNetworking仓库克隆(clone)到本机SourceTree中 并推送(push)到我们GitHub远程仓库中


上传完成后 在我们的GitHub仓库中会看到我们上传的项目 我们点击compare

之后我们会进入一个compare页面 这个页面用于比较作者仓库与我们仓库的文件的不同。base fork:指的是作者仓库目录地址;head fork:指的是我们账号中fork后所产生的仓库地址。 如果有所修改直接点击Create pull request即可

如果有所修改 我们点击Pull request

在这可以输入自己更改的原因/更改的内容。这里写的文字会显示给源代码作者,如果作者接受了我们的推送请求(pull request)后,我们的代码将会上传到源代码作者的仓库内,成功为开源做贡献。如果作者拒绝了我们的推送请求(pull request)后,我们的代码将不会上传到源代码作者的仓库内。

我们点击Create Pull Request即可,系统将自动跳转到等待回复的页面,这里会显示作者是否接受我们的代码更改。
SourceTree&Git部分名词解释
克隆(clone):从远程仓库URL加载创建一个与远程仓库一样的本地仓库
提交(commit):将暂存文件上传到本地仓库(我们在Finder中对本地仓库做修改后一般都得先提交一次,再推送)
检出(checkout):切换不同分支
添加(add):添加文件到暂存区
移除(remove):移除文件至暂存区
暂存(git stash):保存工作现场
重置(reset):回到最近添加(add)/提交(commit)状态
合并(merge):将多个同名文件合并为一个文件,该文件包含多个同名文件的所有内容,相同内容抵消
抓取(fetch):从远程仓库获取信息并同步至本地仓库
拉取(pull):从远程仓库获取信息并同步至本地仓库,并且自动执行合并(merge)操作,即 pull=fetch+merge
推送(push):将本地仓库同步至远程仓库,一般推送(push)前先拉取(pull)一次,确保一致
分支(branch):创建/修改/删除分枝
标签(tag):给项目增添标签
工作流(Git Flow):团队工作时,每个人创建属于自己的分枝(branch),确定无误后提交到master分枝
终端(terminal):可以输入git命令行
3.sourceTree解决问题的方法
方法一:查看冲突,可选择'暂存区块'或者选中某行后‘暂存行块’,或者‘放弃区块’或者选中某行后‘暂存行块’

方法二:通过菜单栏->动作->解决冲突,一般在冲突较多时候采取该方法

回滚操作 回滚到上个版本

4.sourceTree常见报错
推送前未提交本地的改动,推送前提交本地改动再推送即可

网络异常报警公司网络不稳定,就会时常发生这个报警,待网络情况好转后再次尝试即可

推送的远程分支仓库权限受到只读保护,发生此报警

参考文章一
参考文章二
网友评论