提交和推送
git是分布式版本控制工具,存在着本地仓库和远程仓库,所以我们在本地工作副本进行的编辑,要先提交到本地仓库,再从本地仓库推送到远程仓库。
获取和拉取
获取是将远程仓库的代码更新到本地仓库,拉取是将本地仓库的代码更新到本地工作副本。
有时候别人更新推送了代码你看不到,就要先获取
分支
在新增的分支develop上进行新增功能的开发,等到新增的功能测试通过后再把分支合并到主干master上。
新建的新分支develop也要先推送到远程的develop分支上,当记录中出现develop 以及 origin/develop即可。
还有功能分支(feature branch),是从开发分支上拉取下来的,用于开发和测试功能,并最终合并(merge)回开发分支中。
新建分支
进入一个现有分支,点击上方分支:
切换分支
双击想要进入的分支即可:
推送新分支
在本地sourcetree创建新分支之后, 远程仓库上不会显示新分支,直到我推送新分支才显示:
远程仓库中现在就能看到我新建的分支了:
从远程仓库拉取新的分支
可以看到, 本地仓库是没有名为HEAD的分支的, 我们想拉这个分支到本地仓库:
点击确定即可:
推送新代码到指定分支
例如我们只想把一个新的修改放到其中一个分支上; 那么我们先正常提交,然后推送时出现弹出框: 我们只要勾选想要推送到的分支即可: ps: 提交时要加注释,否则推送不成功
成功推送之后,就可以看到,只推送到了feature分支:
合并分支
例如,将feature分支合并到develop分支上:
此时,我们能看到develop分支上出现待推送:
点击推送即可:
拉取时冲突解决(脱离分支)
1. 首先先看看是不是自己本地修改了但是未提交
若是,看修改未提交的部分还要不要,不要则直接丢弃,这样的话自己本地的vs代码相应未提交部分也会被删除;
如果自己的还像保留的话,就按照下面的指示操作:
SourceTree使用教程(四)---冲突解决-百度经验 (baidu.com)
1、先把代码存到暂存区 2、点击储藏,并输入储藏名字 3、拉取最新代码 4、应用储藏区 5、修改冲突代码 此时可以清晰看到冲突的文件(带有三角标志的)在vs中修改又矛盾冲突的地方 6、提交代码 把解决了冲突的这个文件提交到暂存区,已暂存文件的冲突图标会消失,此时可以正常提交代码到远程。
撤销回滚
用于撤销最近一次提交/推送。
提交/推送完代码之后发现提交错误了-> 最新的提交记录上 右键选择回滚提交;
可以看到提交记录上多了一个Revert反向提交;
这个时候,反向提交只提到了本地仓库,如需撤销远程仓库的,还需将这个Revert推送到远程仓库;
回退到某个历史版本
打开develop分支的日志/历史,鼠标选中将要回退到的那个历史提交记录;
右键-> 重置当前分支到此次提交;
在弹窗中 使用模式选择 强行合并--丢弃所有改动过的工作副本,点击确定;
等待重置完,可以看到本地仓库的develop分支已回退了两步提交操作。而且本地仓库落后远程仓库两个提交记录;
选中最新的提交历史记录,右键->重置当前分支到此次提交;
这次选的使用模式是软合并 – 保持所有本地改动,点击确定;
剩下的操作只需将这个改动文件提交并推送到远程仓库;