The road to success Is Little by little

______Lizhixuan______

GitHub个人网站个人“看云”站

安装并使用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客户端
  • 下载
  1. 登录SourceTree官网 : https://www.sourcetreeapp.com/ (因为是国外网站,下载时间可能比较长,可使用VPNFQ下载)
  2. 附百度云网盘SourceTree 3.0下载地址: 链接:https://pan.baidu.com/s/1aM-VS1FtbXAoya6WlK-39A 密码:p3ok
  • 解压后安装


  • 安装

一·


点击安装时点击"转到我的Atlassian",3.0版本sourceTree直接点击左边按钮,直接跳转注册按钮。
二· 有账号的可以登录,没有可以直接注册:


注意:注册需要FQ进行人机验证。FQ之后呈现效果:

三· 注册完成之后登录会自动跳转到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时,它会提醒你要不要保存,你点保存才会成为已暂存文件

四· 忽略某些不必要文件的提交

  1. 按步骤打开并编辑.gitignore文件




  1. 按照忽略规则编写文件保存即可(以下列出部分说明)
#               表示此为注释,将被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,处理起来会非常麻烦。


全文完!

posted @ 2018-11-04 16:48  进阶-之路  阅读(10311)  评论(1编辑  收藏  举报
Copyright ©2016-2019 李智轩