赞
踩
master,最终发布版本,整个项目中有且只有一个
develop,项目的开发分支,原则上项目中有且只有一个
feature,功能分支,用于开发一个新的功能
release,预发布版本,介于develop和master之间的一个版本,主要用于测试
hotfix,修复补丁,用于修复master上的bug,直接作用于master
在对git一知半解的时候,SourceTree里面又增添的新的术语,或者使用中文跟git命令英文还对不上号,下面这篇文章解决了很多疑问,可以多看看
关于git(SourceTree)的几个疑问及解答
git rebase 把多次commit合并成一个(git原始命令)
从远程仓库拉下来的时候,没有新建自己的分支,直接在master上修改了。但当要推送的时候不能直接这么推吧。
先将修改的代码提交到本地仓库,但不推送。新建分支(这时候本地仓库提交但未推送的修改就在这个分支里被保存),将本地master分支(理解为不纯净的分支)强制删除,再将远程master分支拉取到本地。最后再推送。
上述过程可能有细节上的偏差(比如漏了某些检出操作?),也可能有自己理解上的偏差,但线作为存档记录一下。
假设本地分支A是自己的写的代码,A是从develop分支延申的,远程分支B也是从develop分支延伸的。现在B作了些修改,要在本地A分支上获取/合并这些修改:如果A分支有修改的话,先提交这些修改到本地仓库,并不用上传到远程仓库。然后点击合并按钮,会显示要将哪个分支合并到当前(A)分支,点击B分支并点确定。这时候最新的那个点,如果有文件冲突的话会显示冲突文件。回到VS Code,将冲突文件关闭再打开,就会有蓝色、绿色代码显示冲突部分,解决好冲突就行了(之后操作就没有个人亲自体验过了)。
这时候A分支的修改只能被提交到本地仓库,如果要提交到远程仓库,会显示出错。这时候需要从远程仓库拉取,使一致才行。拉取一下,会出现冲突文件的提示,对冲突文件进行修改。
本案例并未亲身体验,仅参考:SourceTree使用教程(四)—冲突解决
如果远程分支已经是feature/A这个样子了,那我只能在这个分支上重新checkout一个feature/A_myVersion,而不能feature/A/myVersion,这样做之后推送会出现推不上去的情况。
选中你想回滚到的提交记录,右击->将(所在分支)重置到这次提交->强行合并->确定。这时候会出现提示该操作会丢失所有工作副本,注意如果确定的话,要撤回的那些改动过的代码都会不存在了,至于恢复到什么样子我还不确定,因为有一些还未提交的好像仍有?所以最好在做这部工作前,先对代码进行复制备份。
在+号new tab页,可以进行的操作有Local,Remote,Clone,Add,Create
当本地有本地仓库,即文件夹中有.git文件,但是在Source Tree中没有将本地仓库和远程仓库连接起来。发生这种情况是本来本地在老账户使用source tree已经完成本地与远程仓库的连接,但是创建了新用户后,本地文件仍在(一模一样),但是本地与远程仓库的连接断了。
点击Add按钮,“工作副本路径”选择有.git的文件夹,它会显示“这是一个git仓库”,然后点击“添加”按钮即可建立连接
猜测原因:本地库原本是克隆的远程库,但之后远程库上有些分支被删除了,但本地库并没有被删除,就出现了这个错误。就按照它的提示运行一下那个语句就可以解决问题。
聊下 git remote prune origin,有使用git命令查看本地分支和远程分支的匹配、更新update、tracking情况
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。