source Tree 基本操作
内容提交
提交方法一:
1.解决工作副本冲突;
点击 工作副本,将“未暂存文件”中,非自己修改的内容进行 reset 或者 移除等操作,防止该文件对自己所要上传内容造成冲突
2.拉去远端;
点击菜单栏 “拉取”选项,使自己项目与最新版本内容保持一致
3.提交修改;
点击菜单栏“提交”按钮,在工作副本中,勾选自己需要修改的内容,填写推送内容的概述,点击提交选项,将自己修改的内容提交的线上,同时注明自己修改的内容
4.push代码;
点击菜单栏“推送”按钮,选择需要推送的版本,完成修改内容的推送
提交方法二:(如果存在冲突文件,最后采用该方法进行提交)
过程大致分为:提交-->拉取-->解决冲突-->在提交-->推送。 2次提交,1次推送
1 提交本地修改内容
2 拉取远端提交内容,拉取的时候可能提示文件有冲突,点击ok。
拉取成功之后提示n个超前,m个落后,既有需要pull拉取的,也有需要push推送的,不用管他
选择分支的顶端,对冲突的内容进行处理
处理完成之后,点击commit进行提交
提交完成之后,点击push,进行推送,然后就可以了
提交完成如下
合并分支:将两个不同的分支进行合并
首先拉取当前分支,使自己的分支处于当前分支head处,
选择需要合并的分支,右键选择合并分支
注意:自己提交代码产生的分支,一般不要通过合并去处理代码的冲突问题。
解决合并冲突代码后的问题:
<<<<<<<标记冲突开始,后面跟的是当前分支中的内容。 line 4
=======之后,>>>>>>>之前是要merge过来的另一条分支上的代码。line6
解决方法:右键冲突文件-解决冲突
使用“我的版本”解决冲突:使用<<<<<<<后面的内容
使用“他人版本”解决冲突:使用=======之后,>>>>>>>之前的内容
sourceTree 链接github项目,并进行管理:http://www.xz7.com/dir/171439.html
超前一个版本,落后N个版本
解决方法1 基本解决方法
拉取远端文件,修复冲突,然后提交,推送,参考代码提交第二中方法,如果不能解决问题,参考以下方法。
解决方法2 -->用于没有冲突文件
将当前版本重置到冲突分支之前,然后拉取远端分支,在提交自己的代码
解决方法3 通过储存代码进行修复
参考博客:http://blog.****.net/wodeyuer125/article/details/48247765
1 首先将分支重置到有歧义的位置
然后选中冲突的本地文件,点击菜单栏暂存,存储该文件
2 拉取远端文件
3恢复暂存文件
4 解决冲突
应用暂存文件,如果该文件暂存之后与拉取的文件修改了同一块内容,需要解决冲突模块,修改的方式可以参照上面“解决合并冲突代码后的问题”的内容进行修复
5 应用完成之后,删除已存储的文件
解决方法4 通过终端进行修复
在使用SourceTree的时候经常会遇见超前一个版本,落后N个版本的情况,遇见这种情况应该怎么办呢?
1 首先打开终端,最好是从SourceTree里面打开,菜单栏有个终端按钮。
然后输入:
$ git reset –hard HEAD^
这句话的意思是将自己最近的一次提交撤销,回到push之前的状态。但是所有commit的内容就都消失了。非常不建议用这个参数,会牺牲太多的代码。
2 如果不想让commit消失,可以改一下参数。用这个参数可以保证你提交的代码原封不动的保存下来。前提是你本地的工作台是干净的。。把所有代码都暂存。
$ git reset –soft HEAD^
执行这句话之后重新拉取一遍代码就可以了,push的都会撤销回来。
3 如果想一次回退多个push,可以这样:(例子是撤销最近三次的提交)
1234567是要回退到的版本号,根据具体情况而定,这里只是举例子。
版本号可以不写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。
最后总结一下:
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset –hard commit_id。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
其它常见问题及解决方法
1 未拉取远端分支,直接推送本地分支内容
该问题多发生于他人推送git文件,本地还没有刷新显示有文件需要拉取,用户认为现在自己的分支不需要拉取更新,直接推送本地分支造成的。
提示远程已经有更新了,本地版本太低,让我们先pull拉取最新的代码,
我们继续拉取代码pull一下,这个时候由于本地有修改这个文件,就会在本地产生冲突文件
通过右键解决冲突选项,解决冲突,显示超前1个,落后1个,然后通过上述方法进行处理