阅读更多
如果你想从别的 Git 托管服务那里复制一份源代码到新的 Git 托管服务器上的话,可以通过以下步骤来操作。
1). 从原地址克隆一份裸版本库,比如原本托管于 GitHub。
git clone --bare git://github.com/username/project.git
2). 然后到新的 Git 服务器上创建一个新项目,比如 GitCafe。
3). 以镜像推送的方式上传代码到 GitCafe 服务器上。
cd project.git
git push --mirror
[email protected]/username/newproject.git
4). 删除本地代码
cd ..
rm -rf project.git
5). 到新服务器 GitCafe 上找到 Clone 地址,直接 Clone 到本地就可以了。
git clone
[email protected]/username/newproject.git
这种方式可以保留原版本库中的所有内容。
git相关笔记:
本地仓库指的是本地的工程目录整个目录,.git文件夹在这个根目录下。
暂存区对应SourceTree里的添加(add,checkout)
SourceTree提交是提交到本地仓库(commit,reset)
推送是把本地仓库内容推送到远程(push,pull)
注意:只有在做了add操作代码到了暂存区之后才可以在SourceTree里的代码提交列表里看到,才可提交。
现在我们的开发模式是在1.2上面的分支做开发,然后开发完成之后最后合并到develop上面,然后更新线上代码,合并develop分支会有专门的账号,我们目前没有权限做提交了。
因此自己也不要试图在本次做develop上的提交,操作顺序必须都是在1.2分支上做开发完成之后提交,然后会有专门的账号将代码合并到develop分支上面,之后自己本地再更新develop分支代码即可。。
SourceTree上面的界面上提交的各种不同颜色的线条,有的是分别表示不同的分支上的开发,有的是表示不同的人做的提交。
蓝色的箭头是远程分支,灰色的是本地分支!!!
自己假如有一个develop主分支,然后有两个1.2和1.3的版本开发的周期比较长的子分支,然后线上突然出现一个紧急bug然后拉了一个feature-DBYZ57分支,然后在这个分支上面改bug,改完之后需要自己在本地将这个feature-DBYZ57分支合并到1.2和1.3这两个周期比较长的开发分支上面。。。剩下的将feature-DBYZ57合到develop分支上这个事情就不用自己操行了,运维人员会有专门的账号来做这个事情,也就是说把主分支develop下面的某一个子分支合并到主分支develop上这样的操作本地做不了,只有专门的账号才能做,自己本地操作不了develop分支。
注意:只允许往develop上合,而不允许从develop上往下合。比如在1.2版本分支上做着开发,然后来了一个bug,拉了一个分支feature-112,在这个分支上修改完了之后正确操作是将feature-112这个上面的代码直接合到develop上然后上线,然后自己把feature-112上的代码合并到1.2上,然后继续开发,决然不允许从develop上再拉代码合并到1.2上。
合并分支一般的操作不是把本地的分支合并到另外一个分支,实际操作是把远程的合格分支合并到本地的当前分支上面去
在sourcetree上操作,常见到的情况是由于某个大版本在开发中,自己没有参与,此版本分支A提交的人比较多,自己在B分支上开发中,由于想看看所以切换到A分支了,结果一啦代码发现需要merge,怕有风险就么有操作merge,此时再想切回到B分支了,怎么都切换不过去。此时的解决办法点击贮藏或丢弃,如果本地自己正在开发中的分支里面还有未提交远程的代码,则需要使用贮藏,如果本地仓库没有正在开发中的未提交的代码,则可以使用贮藏旁边那个按钮丢弃,这个丢弃是丢弃本地仓库所有项目里自己本地开发还未提交的改动,所以这个要慎用。