Git工具
一 建立仓库
用Git进行代码版本管理,肯定得先有个仓库啊,仓库的选择一般按公司的要求来,现在免费得代码托管网站也有很多,目前我在用的有两个gitlab(公司内部使用,只能内网访问),还有一个就是在家里面用的Git@OSC,当然国内还有一个CODING也非常不错(CODING的IOS项目开源了写的很不错有兴趣的同学可以去他们网站上找一下),选择好你要用的代码托管网站进行注册,下面我就用Git@OSC进行个示范
1.新建仓库
新建仓库
设置
将仓库的HTTPS地址复制下来
2.将你建立的仓库clone到本地
打开已经下载,注册好的sourceTree
点击+新仓库选择从URL克隆
目标路径可以自己设置
点击克隆之后本地仓库就多出了GitDemo这个仓库
二 提交代码
1.我们已经把托管代码网站上的仓库clone到了本地,但是现在仓库里面没有项目,现在新建一个项目(或者用已有的项目)
新建项目
2.点开我们新建项目文件夹,全选复制里面的文件
注意不要直接拷贝这个项目的整个文件夹,要点开全选里面的内容拷贝
3.然后打开我们刚才新建的仓库的文件夹,把我们拷贝的内容粘贴进去
仓库是我们在新建仓库的第二步clone到本地的 , 可以往上翻着看如果忘了的话
4.然后用sourceTree打开我们GitDemo这个仓库
我们刚才拷贝到仓库里面的内容都已经在为暂存文件的区域内了
Git代码管理的所有操作的第一步永远都是,将代码提交到本地,但是有些东西是不用提交的,所以在把代码提交到本地仓库之前我们需要通过
gitignore来设置,方法就是点击上图中得设置,选择 高级
配置gitignore文件
点击编辑 然后把我下面贴得内容拷贝进去(经过检验的gitignore),关于gitignore这里不做过多讲解,有兴趣可以自行搜索
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.Ripa
*.xcuserstate
contents.xcworkspacedata
project.xcworkspace
UserInterfaceState.xcuserstate
project.xcworkspace/
xcuserdata/
UserInterface.xcuserstate
# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
#
.DS_Store
Pods
Pods/*
粘贴进去之后直接点关闭就OK了
然后点击上图中得为暂存文件
写下你的提交信息,点击提交
到这一步我们已经把代码提交到了本地仓库里
master主分支
我们现在没有建其他的分支,所以之后一个master分支,也就是主分支,点击推送就把可以把代码成功推送到OSChina的远程仓库了
推送成功,以后每次推送代码都要养成先拉取的习惯
三 Git分支
我上面讲的只是sourceTree的基本用法,下面我简单的跟大家讲一下分支的使用,对于Git分支学习请大家移步Git Flow
看懂了这张图你就可以玩转分支了
下面我们就以develop分支为例(常用分支,一般开发都在这个分支上开发,由一个固定的人维护master分支),点击上图的分支选项
创建名字为develop的分支
这时候自动从master分支切换到了develop分支
现在这个develop分支只是在我们的本地,无法多人开发时共同在这个分支上进行开发,我们需要把它推送到远端, 点击推送即可
勾选你要推送的分支,一般来说master不要勾选,让一个人去维护,在需要合并的时候再推到master
这个时候你的远端也有了develop分支,如果你不想要这个 分支了 ,想把这个分支删除,你应该先确保代码都已经提交到了本地仓库,然后双击你的master分支切换到master分支上面去,最好点击sourceTree的分支选项
删除分支,选择你要删除的本地分支 远端分支
然后结合着那个分支图,点击Git Flow选项就可以自己尽情的试验分支的使用了 , 至于代码冲突,我的建议是提高更新频率,有删除,新加的操作最好立即更新,当冲突出现了,也是可以用sourceTree辅助解决的。