如果没有GIt命令行基础推荐先阅读这篇博客的第7.1段
http://blog.csdn.net/qq_37977176/article/details/78598891
Win下_安装Git参考
文章目录
-
-
- 如果没有**GIt命令行基础**推荐先阅读这篇博客的**第7.1段**
- http://blog.csdn.net/qq_37977176/article/details/78598891
- Win下_安装Git参考
- SourceTree介绍:
-
- SourceTree环境第一步 :
-
- 下载Git客户端 : https://git-scm.com/
- 并配置Git环境变量(后SourceTree会自行找到你电脑上上的Git客户端)
- SourceTree环境第二步 :
-
- SourceTree需要使用Google账号以及Atlassian账号登录!!!
- **免登录参考**https://www.cnblogs.com/diyishijian/p/6726792.html
- SourceTree正式使用 (开发术语)
-
- 1. SourceTree 克隆仓库
-
- **HTTPS方式**克隆仓库 :
- **HTTPS免密方式**克隆仓库(**此方式不安全,传输时可能被监听!!!**) :
- **SSH方式**克隆仓库(可以**Clone公钥下的任意项目**)
- SSH生成公私密钥详细说明请移步至 :
- http://blog.csdn.net/qq_37977176/article/details/78862073
- Source Tree导入 SSH秘钥配置移步
- https://blog.csdn.net/tengdazhang770960436/article/details/54171911
- 2. 日常add,commit,pull,push操作master分支
- 3. 忽略暂存区文件配置(移除后需提交操作)
- 3.1 全局忽略与单项目忽略区别
- 4. 使用SourceTree解决冲突
- 解决冲突:
-
- 如果两个开发者修改了同一个文件的同一段代码,或者修改了同一个文件路径,提交并push到sourceTree时会提示冲突。需要先修正本地冲突,冲突的标志是“<<<<<<<”,"=======",">>>>>>>"之间的部分,解决的办法:
- (1)第一种是逐行删掉冲突,找到protect.pbxproj,右键选择“在finder中查看”,找到protect.pbxproj文件双击打开,cmd+f搜索“<<<<<<<”,找到冲突的部分,删除“<<<<<<<”及其对应的行,删除“=======”及其对应的行,删除“>>>>>>>”及其对应的行,然后重新提交就可以了。
- (2)第二种方法,右键---->解决冲突——>使用他人版本解决冲突---->确定-----重新提交
- (3)第三种方法,revert冲突的本地文件,然后重新提交如果文件已经提交到本地仓库,但未push到服务器,出现冲突,可以回滚本次提交。拉取文件时如果出现文件冲突,解决办法:revert冲突的本地文件,然后重新提交。
- (下边是我自己的总结,关于冲突的解决方案)
- 5. 使用SourceTree合并分支以及打Tag确定版本
-
- (动态图大小受限被迫剪切,多看几遍吧)
- 6. 使用SourceTree暂存代码
- 7. Git命令流程图
-
SourceTree介绍:
SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端管理工具,同时也是Mercurial和Subversion版本控制系统工具。支持创建、克隆、提交、push、pull 和合并等操作。
- 1 . SourceTree拥有完整的Git功能:
- 2 .通过一个简单的用户界面即可使用所有的Git命令
- 3 .通过一次单击,即可管理所有的Git库,无论是托管的还是本地的
- 4 .通过一次单击,即可进行commit、push、pull、merge等操作
- 5 .一些先进的功能,如补丁处理、rebase、shelve、cherry picking等
- 6.可以连接到你托管在Bitbucket、Stash、Microsoft TFS或GitHub中的代码库
SourceTree环境第一步 :
下载Git客户端 : https://git-scm.com/
并配置Git环境变量(后SourceTree会自行找到你电脑上上的Git客户端)
SourceTree环境第二步 :
SourceTree需要使用Google账号以及Atlassian账号登录!!!
免登录参考https://www.cnblogs.com/diyishijian/p/6726792.html
SourceTree正式使用 (开发术语)
克隆(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命令行
1. SourceTree 克隆仓库
HTTPS方式克隆仓库 :
HTTPS免密方式克隆仓库(此方式不安全,传输时可能被监听!!!) :
SSH方式克隆仓库(可以Clone公钥下的任意项目)
SSH生成公私密钥详细说明请移步至 :
http://blog.csdn.net/qq_37977176/article/details/78862073
Source Tree导入 SSH秘钥配置移步
https://blog.csdn.net/tengdazhang770960436/article/details/54171911
2. 日常add,commit,pull,push操作master分支
3. 忽略暂存区文件配置(移除后需提交操作)
3.1 全局忽略与单项目忽略区别
4. 使用SourceTree解决冲突
解决冲突:
如果两个开发者修改了同一个文件的同一段代码,或者修改了同一个文件路径,提交并push到sourceTree时会提示冲突。需要先修正本地冲突,冲突的标志是“<<<<<<<”,"=======",">>>>>>>"之间的部分,解决的办法:
(1)第一种是逐行删掉冲突,找到protect.pbxproj,右键选择“在finder中查看”,找到protect.pbxproj文件双击打开,cmd+f搜索“<<<<<<<”,找到冲突的部分,删除“<<<<<<<”及其对应的行,删除“=======”及其对应的行,删除“>>>>>>>”及其对应的行,然后重新提交就可以了。
(2)第二种方法,右键---->解决冲突——>使用他人版本解决冲突---->确定-----重新提交
(3)第三种方法,revert冲突的本地文件,然后重新提交如果文件已经提交到本地仓库,但未push到服务器,出现冲突,可以回滚本次提交。拉取文件时如果出现文件冲突,解决办法:revert冲突的本地文件,然后重新提交。
(下边是我自己的总结,关于冲突的解决方案)
这里需要说明的是,冲突大概有两种情况:
(1)没有代码的文件冲突:一般像config或者工程文件冲突,我们的处理就是放弃自己的本地修改,即revert(重置)自己的config或者工程文件,再次拉取就没有什么问题了。(2)有代码的文件冲突:这种情况就要注意了,**十分建议在进行下一步操作之前,备份一份自己的代码,最少是自己动过的类,不然很有可能自己的辛苦劳动在“重置”之后不见了。**这种情况我的处理方法是:备份后选择将冲突的类全部重置,然后拉取,此时就不会冲突了,再把自己写的代码拷贝到拉取后的相应的类文件里面,再提交推送就可以了。
(3)小技巧避免冲突
一般我们提交代码的顺序是:拉取-提交-推送。这个没有问题,但是有时候会只是提交了,忘了推送,过了一个小时或者一段时间,才想起来,结果推送的时候冲突了,甚至你即便刚刚提交了,马上点击推送,都可能造成冲突:**因为有人可能在你操作:拉取之后,提交之前,又推送了,你的版本不是最新的版本了,可能造成冲突。所以建议大家提交代码的顺序是:拉取-提交-拉取-推送。而且,最好是提交了代码,马上拉取,马上推送,尽量避免不冲突。**因为冲突给我们带来不必要的麻烦:本来开开心心的撸代码,最后因为这个把心情搞的很糟糕。不值。
甚至有这种方法避免操作,屡试不爽(重点):**想提交自己的代码了,先不拉取,先提交,提交好了,再拉取,再推送,即:提交-拉取-推送。这种方法基本上不会冲突,因为保证了你的代码是最新的版本,这种操作下甚至于两个人同时动一个类文件都不会冲突。**总之,建议大家使用这种方法。亲测无误。