【GIT】可视化操作
部分参考:https://blog.csdn.net/syq8023/article/details/89844030
1、在GIT注册账号
https://gitee.com/lottie22/projects (手机号)
2、新建仓库
3、下载sourcetree安装包:
链接:https://pan.baidu.com/s/1BFofwtTL6Z6sSIwthykd2Q
提取码:2vhj
4、安装时跳过注册(参考https://www.jianshu.com/p/9d4f66bdbe56和https://www.cnblogs.com/xiaohuizhang/p/12355751.html)
=============================
1. 在下面路径下创建一个accounts.json文件(把"你的电脑用户名"部分替代成你自己的信息)
C:\Users\"你的电脑用户名"\AppData\Local\Atlassian\SourceTree
(注意: 找对路径. 在Local文件夹里也有一个SourceTree文件夹; 需要添加json文件的这个SourceTree文件夹在Local=>Atlassian下面)
2. 在json文件中输入下面的内容 (不需要做任何的更改)
[{"$id":"1","$type":"SourceTree.Api.Host.Identity.Model.IdentityAccount, SourceTree.Api.Host.Identity","Authenticate":true,"HostInstance":{"$id":"2","$type":"SourceTree.Host.Atlassianaccount.AtlassianAccountInstance, SourceTree.Host.AtlassianAccount","Host":{"$id":"3","$type":"SourceTree.Host.Atlassianaccount.AtlassianAccountHost, SourceTree.Host.AtlassianAccount","Id":"atlassian account"},"BaseUrl":"https://id.atlassian.com/"},"Credentials":{"$id":"4","$type":"SourceTree.Model.BasicAuthCredentials, SourceTree.Api.Account","Username":"","Email":null},"IsDefault":false}]
3. 完成上面步骤后,再次执行SourceTree的安装, 这次会直接跳出下面这个窗口. Mercurial也是一个版本管理工具, 不过我用的是git, 就选择不用.
最终安装成功 (我这个因为从官网下载一直失败, 就从网上随便找了一个包安装,所以显示中文).
============================
5、在本地新建一个文件夹目录用于文件传输,打开sourcetree,新建仓库->Clone.输入git地址,本地目录等。
、6、提交和推送。由于git是分布式版本控制工具,存在着本地仓库和远程仓库,所以我们在本地工作副本进行的编辑,要先提交到本地仓库,再从本地仓库推送到远程仓库。下面进行演示。第7步中编辑完成后,打开sourceTree, 可以看到文件的变动已经显示到软件界面,点击暂存所选,类似于勾选要提交的文件。
提交时可能需要登录GIT账号。
提交时可勾选立即推送。也可提交后点击推送。推送后才能在web上看到。
7、获取和拉取
获取是将远程仓库的代码更新到本地仓库,拉取是将本地仓库的代码更新到本地工作副本。打开sourceTree,点击 获取按钮,如下图
获取一般在实际使用中是不会先点获取,再点拉取的,因为拉代码都是直接一步到位为拉到本地工作副本的。所以直接一个拉取操作就够了。
拉取8、分支。
当要新增一个功能,又要保证原始功能的正常的使用,这个时候为了不影响原功能的使用,就可以建立一个分支,在分支上进行新增功能的开发,等到新增的功能测试通过后再把分支合并到主干上。如下图,点击分支,输入新分支名字,以当前工作副本为基础生成一个新的develop分支。
但是这个分支只存在于本地仓库。点击推送,如下图,勾选第一个,将本地others分支推送到远程others分支
9、修改内容,只在当前分支提交和推送。后可看到,只在当前分支有修改。
10、功能1和2测试通过,现在要将others分支上新增的两个功能合并到主分支master上。
将当前分支切换到master分支,鼠标移到到others分支,右键,选择合并others至当前分支,也即是主分支。智慧在主分支点推送。
11、冲突
可能会有多人同时编辑同一文件的情况。如原本文件1,在web端编辑的同时在本地编辑。保存web端编辑结果后,将本地修改提交并推送。推送时会报错。
既然提示 和远程仓库版本不一致,无法推送,那只能先拉成一致了。点击拉取图标,等执行完,就会出现下图所示。有一个待拉取的图标和一个待推送的图标,并且test1.txt文件的图标变成了黄色的感叹号。这个时候文件的冲突就造成了。
此时,可以选择使用他人版本/使用我的版本,或者进入工具-选项-比较,使用外部工具beyond compare工具。
如上图,如果觉得解决版本OK,点击保存后关闭对比工具。此时,在sourcetree可看到新增了一条记录为解决版本。
提交并推送该版本。冲突解决。
12、支持文件部分提交。
SourceTree比起tortoiseGit来,最大的不同之处在于 Sourcetree支持文件的部分提交,这大大方便了用户的使用。
有的时候,我们开发了一个A功能,未上线,同时又并发开发了B功能,B功能比A功能先上线,而且B功能和A功能修改的是同一个文件,这种情况在上线B功能时,SourceTree就体现出优势了。
功能:在修改文件时暂存行/暂存区块。然后提交-推送。
13、回滚提交
选定某个操作,右键回滚提交。提交成功后推送。则回滚。
若依次有A-B-C提交。在B环节回滚。
将第二次提交回滚。
于是解决冲突,保存并提交,推送。
推送后则是成功回滚并解决冲突的版本。
14、回滚到以前的版本,若版本的内容已经没有用处了,可以进行丢弃,丢弃过后,则上次修改的内容则无效,即自动删除上次修改的所有内容。