安装并使用SourceTree进行代码管理(Mac环境)
应用场景
对于我们开发人员来说,熟练使用Git是最基本的技能之一。SourceTree又是一款比较好的Git UI工具,是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,主要依赖可视化界面操作,省去繁琐复杂不容易理解的终端命令。
使用工具
Git工具 / SourceTree客户端
安装Git工具(如果电脑有Git可跳过此步骤)
git官网下载地址:https://git-scm.com/download
一·
二·
三·
双击安装包安装
如果出现打开(可能是因为没有权限)
按住control并双击解决,点击打开按钮
四·
打开之后直接点击继续下一步就OK,如果需要更改Git存放地址直接更换即可。
五·
六·
测试是否安装成功,打开Mac终端输入git命令,出现下图即代表安装成功。
> 安装SourceTree客户端
- 下载
- 登录SourceTree官网 : https://www.sourcetreeapp.com/ (因为是国外网站,下载时间可能比较长,可使用VPN翻墙下载)
- 附百度云网盘SourceTree 3.0下载地址: 链接:https://pan.baidu.com/s/1aM-VS1FtbXAoya6WlK-39A 密码:p3ok
- 解压后安装
- 安装
一·
点击安装时点击"转到我的Atlassian",3.0版本sourceTree直接点击左边按钮,直接跳转注册按钮。
二· 有账号的可以登录,没有可以直接注册:
注意:注册需要翻墙进行人机验证。翻墙之后呈现效果:
三· 注册完成之后登录会自动跳转到SourceTree客户端,此时可以点击继续下一步(不注册或者登录,继续按钮为灰质无法继续)。
四· 登录成功之后,需要进行一些基础配置,在这里配置之后后面使用会比较方便。
五· 创建完成之后就差不多安装完成了。
六· 然后使用Git创建公钥/密钥,使用SSH进行代码管理管理时需要。
a) 检查SSH key --- 打开Mac终端,运行cd ~/.ssh 如果显示路径下无文件,则执行b步骤
b) 生成SSH key --- 打开Mac终端执行:ssh-keygen -t rsa -C xxxxx@xxx.com (这个是你的邮箱)
c) 打开Mac终端,输入open ~/.ssh,查看id_rsa.pub这个文件并打开拷贝key值
d) 打开coding官网,登录成功后,点击账户-SSH公钥,输入c步拷贝的值,标题最好设置一个容易区分的,避免混淆(最好别用中文),点击保存
e) 执行完之前步骤,后面就可以使用公钥/密钥进行代码托管
f) 使用HTTPS地址操作,进行代码管理时会填写好多账号密码, 个人感觉使用SSH地址来对代码进行管理还是比较方便的
g) 设置Git全局用户名/邮箱,可以省去每次配置邮箱密码:
git config --global user.name ""
git config --global user.email "@qq.com"
- SourceTree使用
一· 安装完成之后的主页面是这样的,其中你的的远端仓库所显示的就是 安装->第四步 配置的code平台
二· 新建按钮解释
三· 使用客户端管理自己的代码
1.提交:Commit 指本地仓库的文件提交到本地仓库保存
2.拉取:Pull 从关联账号的托管平台(比如github)的众多远程仓库中下载一个仓库到本地,前提是你得账号里创建的有仓库
3.推送:Push 将本地仓库源文件提交到本地并更新到托管平台的远程仓库中,即本地和原唱仓库都保存此时仓库中的所有内容(如果不配置ignore忽略文件的话)
4.抓取:Fetch 从远程仓库抓取本仓库的更新内容(比如这个项目是团队开发,别人也可能Push代码到这个仓库,这时候你可能就需要更新一下)并更新到本地仓库
5.分支: branch 分支本质上其实就是一个指向某次提交的可变指针HEAD,指向当前默认分支master或者上一分支.我们之所以需要创建分支分两种情况:
一种是当团队开发时,为了各自干自己的活不相互影响,这时候每个哥们儿都可以从主分支上建立一个属于自己的分支出来,并在自己的分支开发,当开发完毕时,再合并到主分支即可
另一种情况是个人开发,你需要集成某个功能但你又不确定自己是否可以集成成功且不影响源码,这时可以建立新分支,然后再开发,如果集成失败了,又把分支源码搞的乱七八糟,你还可以直接回滚到主分支,重新再来
6.合并:merge 这个当然是在有分支的前提下进行了,只有创建了分支,在分支上开发完毕后,就可以把当前分支合并到主分支或上一分支了
7.暂存:git stash 好像是吧,这个英语怎么写我JB也不会.你可以理解为暂时保存,即当你修改项目时,SourceTree会检测出你哪些文件更改了,并显示到未暂存文件列表中,为什么不直接显示在已暂存文件中呢?这就好比你编辑一个word文档,在你写的时候是属于未暂存的word文件,当你不点保存就关闭word时,它会提醒你要不要保存,你点保存才会成为已暂存文件
四· 忽略某些不必要文件的提交
- 按步骤打开并编辑.gitignore文件
- 按照忽略规则编写文件保存即可(以下列出部分说明)
# 表示此为注释,将被Git忽略
*.a 表示忽略所有 .a 结尾的文件
!lib.a 表示但lib.a除外
/TODO 表示仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/ 表示忽略 build/目录下的所有文件,过滤整个build文件夹;
doc/*.txt 表示会忽略doc/notes.txt但不包括 doc/server/arch.txt
bin/: 表示忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件
/bin: 表示忽略根目录下的bin文件
/*.c: 表示忽略cat.c,不忽略 build/cat.c
debug/*.obj: 表示忽略debug/io.obj,不忽略 debug/common/io.obj和tools/debug/io.obj
**/foo: 表示忽略/foo,a/foo,a/b/foo等
a/**/b: 表示忽略a/b, a/x/b,a/x/y/b等
!/bin/run.sh 表示不忽略bin目录下的run.sh文件
*.log: 表示忽略所有 .log 文件
config.php: 表示忽略当前路径的 config.php 文件
/mtk/ 表示过滤整个文件夹
*.zip 表示过滤所有.zip文件
/mtk/do.c 表示过滤某个具体文件
被过滤掉的文件就不会出现在git仓库中(gitlab或github)了,当然本地库中还有,只是push的时候不会上传。
需要注意的是,gitignore还可以指定要将哪些文件添加到版本管理中,如下:
!*.zip
!/mtk/one.txt
唯一的区别就是规则开头多了一个感叹号,Git会将满足这类规则的文件添加到版本管理中。为什么要有两种规则呢?
想象一个场景:假如我们只需要管理/mtk/目录中的one.txt文件,这个目录中的其他文件都不需要管理,那么.gitignore规则应写为::
/mtk/*
!/mtk/one.txt
假设我们只有过滤规则,而没有添加规则,那么我们就需要把/mtk/目录下除了one.txt以外的所有文件都写出来!
注意上面的/mtk/*不能写为/mtk/,否则父目录被前面的规则排除掉了,one.txt文件虽然加了!过滤规则,也不会生效!
----------------------------------------------------------------------------------
还有一些规则如下:
fd1/*
说明:忽略目录 fd1 下的全部内容;注意,不管是根目录下的 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略;
/fd1/*
说明:忽略根目录下的 /fd1/ 目录的全部内容;
/*
!.gitignore
!/fw/
/fw/*
!/fw/bin/
!/fw/sf/
说明:忽略全部内容,但是不忽略 .gitignore 文件、根目录下的 /fw/bin/ 和 /fw/sf/ 目录;注意要先对bin/的父目录使用!规则,使其不被排除。
温馨提示:
如果你不慎在创建.gitignore文件之前就push了项目,那么即使你在.gitignore文件中写入新的过滤规则,这些规则也不会起作用,Git仍然会对所有文件进行版本管理。简单来说出现这种问题的原因就是Git已经开始管理这些文件了,所以你无法再通过过滤规则过滤它们。所以大家一定要养成在项目开始就创建.gitignore文件的习惯,否则一但push,处理起来会非常麻烦。
全文完!
安装并使用SourceTree进行代码管理(Mac环境)的更多相关文章
- 2018.12.21 如何在现有的Eclipse(4.9.0版本)中安装STS (Spring Tool Suite ) Mac环境下
在Eclipse中安装STS正确步骤实现方式 1.简介说明 spring Tool Suite(sts)就是一个基于Eclipse的开发环境, 用于开发Spring应用程序.它提供了一个现 ...
- 安装python3.6并使用virtualenvwrapper管理虚环境
1.安装python3.6.5依赖环境 注:python3.7.4需要安装:yum install libffi-devel -y yum install gcc patch libffi-devel ...
- 代码管理(二)sourcetree 安装与使用
一 .SourceTree简介 SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,拥有可视化界面,容易上手操作.同时它也是Mercurial和Subve ...
- 代码管理(三)sourcetree 的使用
一.SourceTree简介 SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,拥有可视化界面,容易上手操作.同时它也是Mercurial和Subv ...
- Visual Studio 2013编辑器+SourceTree代码管理工具及扩展工具
Visual Studio 2013: 美国微软公司的编辑开发工具 扩展工具: Resharper:进行深度代码分析,函数深度查询(ctrl+鼠标左): Grunt:是基于Node.js的项目以自动化 ...
- redmine一键安装(项目管理、Bug管理、任务跟踪、代码管理、日报等等)
1,下载一键安装包(64位系统) https://bitnami.com/stack/redmine 2,帮助文档(安装引导) http://www.360doc.com/content/15/033 ...
- git代码管理工具-SourceTree 使用介绍
一.SourceTree 简单说明 SourceTree 是git 代码管理的可视化工具,可省去操作命令行的一个图形化工具,下载地址:https://www.sourcetreeapp.com/ 二. ...
- SourceTree代码管理学习git命令操作
Git管理工具SourceTree提交代码时报文件名过长,用命令解决这个错误: 使用git status查看状态信息 git status 使用git add将修改后的文件(.代表全部文件)添加到暂存 ...
- [SVN Mac自带SVN结合新浪SAE进行代码管理]
前一篇我转载了别人SVN的使用方法,前面的配置和服务器我不是很明白,自己尝试后发现我需要使用到的核心命令是下面一些. 新浪SAE提供了SVN代码管理仓库,只要进入相应应用,然后点击左侧代码管理,到最下 ...
随机推荐
- MySQL索引&&开发规范
规范总结 索引规范 默认添加的索引都是BTree索引.Innodb只支持BTree索引. 设计索引原则 - 最适合索引的列是WHERE子句中的列,而不是SELECT中的列. - 如果索引的字段很长,使 ...
- 大数据处理中的Lambda架构和Kappa架构
首先我们来看一个典型的互联网大数据平台的架构,如下图所示: 在这张架构图中,大数据平台里面向用户的在线业务处理组件用褐色标示出来,这部分是属于互联网在线应用的部分,其他蓝色的部分属于大数据相关组件,使 ...
- SpringCloud搭建注册中心与服务注册
上一篇文章<微服务注册中心原理,看这篇就够了!>介绍了注册中心的概念和原理,本文将介绍下利用Eureka搭建中心并注册服务到注册中心的过程. 本文目录 一.Eureka介绍二.搭建注册中心 ...
- js运动基础2(运动的封装)
简单运动的封装 先从最简单的封装开始,慢慢的使其更丰富,更实用. 还是上一篇博文的代码,在此不作细说. 需求:点击按钮,让元素匀速运动. <!DOCTYPE html> <html ...
- Spring boot 梳理 - 在bean中使用命令行参数-自动装配ApplicationArguments
If you need to access the application arguments that were passed to SpringApplication.run(…), you c ...
- Spring 事务注解@Transactional
事务管理一般有编程式和声明式两种,编程式是直接在代码中进行编写事物处理过程,而声名式则是通过注解方式或者是在xml文件中进行配置,相对编程式很方便. 而注解方式通过@Transactional 是常见 ...
- Flask基础(11)-->http的无状态协议解决办法二(服务端session)
session的交互流程 Session 对于敏感.重要的信息,建议存在服务器端,不能存储在浏览器中,比如用户名,密码,余额,验证码等信息 在服务器端进行状态保持的方案就是Session Sessio ...
- 【ADO.NET--MVC】初学MVC(MVC入门)(1)
最近一直在学MVC,本来今天想开始做项目了,但是一下手才发现还有好多好多都不懂,虽然想照搬别人的模板,但是还是觉得很虚,这也不懂哪也不懂.看来学习一门技术断不是那么简单,只要随便套套模板,看看别人代码 ...
- javascript中字符串对象常用的方法和属性
前言 字符串是一种非常重要的数据类型,在Java等面向对象编程语言中,它代表对象类型,而在javascript中它却是一种基本数据类型,在开发的领域中,我们经常会碰到,无论是前端还是后台.比如后台验证 ...
- pandas.DataFrame的groupby()方法的基本使用
pandas.DataFrame的groupby()方法是一个特别常用和有用的方法.让我们快速掌握groupby()方法的基础使用,从此数据分析又多一法宝. 首先导入package: import p ...