Tag: git

  • 如何将git的master分支整个替换为另外一个分支

    我有一个git仓库,其中master分支的代码已经落后几个月了,而另外一个blah分支却一直在持续提交。现在想把blah分支更名为master,同时也更新remote上的master。 这个操作似乎并不能用简单的git branch -m来解决。搜索发现也有不少人有类似需求,贴上解决方法。 方法一 如果blah分支能够快速merge到master分支,那么采用这个方法 git checkout seotweaks git merge -s ours master git checkout master git merge seotweaks 方法二 如果分支合并时出现了冲突,而你的remote仓库是github或者bitbucket,那么只能强上了 git branch -m master old-master git branch -m seotweaks master git push -f origin master 以上,我的情况只适合第二种,强上成功

  • 配置windows上的git commit时的默认编辑器

    在Win下使用github的Git Shell,每次commit时都会弹出记事本,使用不是太爽,想换成vim才顺手。操作步骤如下 安装gvim 将gvim的目录加入Path环境变量中,在 我的电脑 – 属性 - 高级 - 环境变量中修改 配置git git config –global core.editor gvim 重启Git Shell即可生效!

  • 在Git下创建一个空分支

    有时候我们需要在Git下创建一个空分支,从头开始Coding —— 这大概是那些重构帝最喜欢的事情。参考了github,才找到一个合适的方法。 怎样安全的进行这项操作 我们需要建一个“孤立”的空分支,为了尽可能的保证数据安全,最好还是重新clone一份代码。 $git clone https://github.com/user/repo.git # Clone our repo # Cloning into \’repo\’… # remote: Counting objects: 2791, done. # remote: Compressing objects: 100% (1225/1225), done. # remote: Total 2791 (delta 1722), reused 2513 (delta 1493) # Receiving objects: 100% (2791/2791), 3.77 MiB | 969 KiB/s, done. # Resolving deltas: 100% (1722/1722), […]

  • git flow使用经验小记

    我在半年前开始在公司内推广使用git flow,控制版本发布流程,到目前为止效果令人满意。 但是实际使用过程中有一些小小的意外流程,完全照搬git flow的模型不太容易处理好。好在git本身就很灵活,碰到问题基本上都有办法绕过去。下面是我总结的一些特例情况下的处理办法。 测试/共享单独一个feature 有时候我们需要将一个feature独立测试,或者share给多人一块开发,那么可以将这个feature推到远程git库上,这可以利用git flow的publish功能搞定: git flow feature publish my_cool_feature 这会将 feature/my_cool_feature 分支push到远程git库,多人开发或者单独测试毫无压力。 feature在development分支测试完成,准备release的时候有另外一个未经测试的feature合并进来 已经完成测试的development被未经测试的提交污染了,这时候可以先本地回滚development分支,然后再进行git flow的release流程,例如: git checkout development git reset –hard 5cbadfe885d1eb514b3f07b3f269ca1a7f261e21 #假设测试通过的git rev是这个 git flow release start v1.0.1 git flow release finish v1.0.1 development上有个feature需要测试比较长时间,影响了一些耗时较短的feature发布 development分支上有个feature测试时间比较长一直释放不了,怎么办?—— 果断采用hotfix功能 git br -m feature/another_cool_feature hotfix/another_cool_feature 把耗时短的feature直接转换为hotfix,然后采用git flow的hotfix流程可以直接合并到master分支发布。

  • 用git部署php站点

    在小站点上,直接用git来部署php代码相当方便,你的远程站点以及本地版本库都有一个版本控制,追踪问题或者回滚是很轻松的事情。下面介绍用git部署时的设置步骤 在远程服务器的设置 假定你需要部署的代码在/var/www/yoursite cd /var/www/yoursite git init . git config receive.denyCurrentBranch ignore git config –bool receive.denyNonFastForwards false cd .git/hooks wget https://gist.githubusercontent.com/volca/9482044/raw/344a590af350b997db3819fa21426dfe8bc140f4/post-update chmod +x post-update 在本地git库中新增配置 [remote “prod”] url = your-ssh-username@your-host:/var/www/yoursite/ 这样就算设置完成了。 如果你想把本地的代码推送到远程服务器,下面简单的步骤就可以做到 git pull git push prod 注意事项 如果远程服务器上git的配置目录.git暴露在外部可访问的位置,请在web服务器上设置这个目录不可见。

  • git svn实战

    我之前写了几个wordpress插件,比如inline-javascript, code-prettify。这些插件都托管在wordpress.org提供的svn服务器上,但是我实在太喜欢在git下活动了,因此动了点心思,想把插件代码传到github上,开发完之后利用git-svn传到wordpress的svn服务上。 照着这个思路,捋起袖子就开干了。 用git-svn抓取插件代码 wordpress的插件svn库大且缓慢,如果直接用git-svn去clone代码,一定会慢死,所以我按照以前的笔记,用git从大型svn快速clone代码。 以code-prettify插件为例,首先需要读取这个插件创建时的版本号 svn log http://svn.wp-plugins.org/code-prettify|tail -4|head -1 得到了如下信息,获得一个版本号 318479 r318479 | plugin-master | 2010-12-03 20:12:29 +0800 (五, 03 12 2010) | 1 line 开始clone代码 git svn clone -s –prefix=svn/ -r318479:HEAD http://svn.wp-plugins.org/code-prettify 设置git仓库 首先把代码传了一份到github: https://github.com/volca/code-prettify 然后操作本地git仓库 git branch -m svn git remote add origin git@github.com:volca/code-prettify.git git checkout master 本地svn分支对应svn的远程仓库,本地master分支对应github的远程仓库 Happy time 现在可以按照平常的习惯在git下更改代码,然后用git […]

  • 用git从svn里clone最后几个版本

    一般情况下git svn clone这个操作会从第一个版本开始同步,如果版本号已经到了好几万(或更高?),这个操作会相当的费时。 当时还想着能不能hack一下git-svn脚本,其实后来看看文档,clone操作可以使用参数-r$REVNUMBER:HEAD检出指定版本后的代码,因此,更好的步骤应该是这样: svn info http://your-svn, 并记录最后的版本号,假设是260 假设要检出最后10个版本,做个简单的减法: 260 – 10 = 250 开始clone操作了 git svn clone -r250:HEAD –prefix=svn/ http://your-svn 按这个办法,clone的时间的确是减少了许多。