转载:http://selfcontroller.iteye.com/blog/996494

在这里主要讲一下我在项目中用到的关于gitflow的用法。 
  公司的项目中,专门有一台用来存放版本库的服务器,路径是在默认的安装目录/opt/git/,那么在使用的时候,如果你是一个功能模块或者是一个项目的发起者的话,那么你可以选择使用gitflow来进行管理,关于gitflow的好处在这里我就不在多讲了。 
  1、首先在上面刚刚讲到的目录(注意这是在专门的盛放版本库的那台服务器上)内,创建一个目录,比如说叫testflow.git. 
  2、cd testflow.git  ---->  git --bare  init  //在这个目录下创建一个裸仓库,这个时候这个仓库里面是空的,什么都没有的,当然也还没有任何的分支。 
注意:一下均是在本地机器上完成的操作 
  3、在本地的机器上(开发用的机器),在某个目录下比如project创建一个项目目录比如testproject ----> cd testproject  ---> rails new . //在当前目录下创建rails项目。 
  4、git init  初始化本地的git仓库,注意这条命令会为我们在当前目录创建一个git仓库,并默认为我们创建一个master分支 
  5、编辑我们需要让git忽略的文件,即哪些文件不纳入到git的版本库管理里面。cd  .git 
vi .ignore ,进入到这个.ingore文件,输入那些需要让git忽略的目录活文件。 
  6、配置git的基本信息。在当前用户的家目录,git的全局配置,存储于$HOME/.gitconfig里,这里的配置影响当前用户的所有git repo,或者命令行里,通过git config的--global参数开启全局配置。 
$: git config --global user.name yyfrankyy 
$: git config --global user.email yyfrankyy@gmail.com 
  7、在做完上述配置之后,在当前项目的根目录运行git add .  将当前目录的所有变更的文件通知git进行记录 
  8、git remote add origin test@192.168.0.139:/opt/nginx/testflow.git ---这句话的意思是 在本地配置文件里面记住这个远程库的地址和库的位置,并命名为origin 
  9、git comit -m 'first commit' ----> 提交本地代码到仓库,并标识为first commit 
  10、git push origin master --->把本地git仓库的代码提交到远程git库,如果你不知道远程库叫什么名字,那么你可以运行 git remote  这样就可以列出本项目中的本地git库与远程的哪个git对应。如果你想知道这个远程库的详细信息,那么你可以运行git remote show origin,这样的话,就能够显示出这个远程库的基本信息来。 
关于gitflow的安装: 
a、git clone --recursive git://github.com/nvie/gitflow.git 
b、sudo make prefix=/opt/gitflow install 
c、在/etc/bash.bashrc中加入: 
exprot $PATH = $PATH:/opt/gitflow/bin 
d、source /etc/bash.bashrc 
  11、git flow  init  ---利用gitflow为我们创建master分支和develop分支 
  12、git checkout develop  ---->切换到本地的develop分支。 
  13、git branch  ---看一下现在我们是不是已经在develop分支 
      git branch -r  查看远程分支状况(一般为一个,master分支) 
      git branch     查看本地分支及当前自己所在的分支 
      git branch -a  查看所有分支(本地和远程) 
  14、git flow feature start  test_feature --->在develop分支下创建一个feature分支,并命名为test_feature,以后我们所有的开发工作都应该在这个分支下完成,在开发完成后,我们要git status查看哪些文件都发生了变化,然后我们在git add . 将所有当前目录下的发生改变的文件通知本地git进行记录,然后 git commit -m 'xxxxx'提交代码到本地仓库 
  15、然后再git flow feature finish test_feature 这样的话,我们就把feature分支下的所有改变的代码都merge回了develop分支,git并为我们删除了刚才的test_feature分支,然后我们再git checkout master 跳转到本地的master分支,然后 git merge develop 把本地的develop代码merge回本地的master分支, 
  16、git push orgin master  -----> 将本地master分支的代码提交到远程的master分支 
  17、如果在上述所有操作都完成后,我们还想再在刚才的基础上继续开发其他功能的话,那么我们再次跳转到develop分支然后再开feature分支,继续开发就可以了。 
以上所述就是我本人在公司用到的gitflow尽心的项目代码的管理,此外关于git的配置,还有很多内容没有说,这里给大家提供了几个网址,感兴趣的朋友可以去参考一下 
http://intl-bcds.iteye.com/blog/652594 
http://hi.baidu.com/fiction_junru/blog/item/c9f4a2ef2dde7d3b2cf53411.html 
http://f2e.us/wiki/git-config.html

git以及git flow 的使用的更多相关文章

  1. 从VSS到SVN再到Git 记Git的基本操作

    Source code control 一直是软件开发过程中重要的环节,从最初的纯文件备份,到使用工具进行管理.Source code control 工具的作用也不仅仅只是单纯的对同一个版本进行管理 ...

  2. Git版本控制 Git、github,gitlab相关操作

    目录 关于版本控制 版本管理工具 集中式管理 分布式管理 git版本管理 git介绍 软件安装 Git工作状态 原理流程步骤 git基本操作 对文件进行修改 分支 共享仓库 创建共享仓库: 共享仓库上 ...

  3. [Git] 还原Git上commit,但是没有push代码

    直接在Idea上操作2步解决: 1. 找到: 2. 在To Commit里面填写:HEAD^,表示将commit的信息还原为上一次的,需要多次直接reset多次即可: 使用命令行:原理一样 以下内容转 ...

  4. 命令行操作svn和git和git

    前几天在写代码的时候电脑突然坏掉,老大交代的任务没完成,非常痛恨自己用svn或者git保存代码,相信很多程序员遇到过,硬盘坏掉,存在硬盘中的代码丢失,无法找回的问题,svn和git可谓程序员界的福音, ...

  5. Git:Git初体验——Git安装配置

    作为即将成为一个程序员的男人,一直在听别人说Git多好多好,之前也随便了解了一些,但是始终没有决心去学会.现在大四了,只有毕设和一门开学六七周只去过一次课的全员必修课外,也没有什么事情做,何不去做这些 ...

  6. 使用Git、Git GUI和TortoiseGit

    1. 关于命令行 我一直建议在命令行中使用Git或者SVN.因为这样可能更加了解他们的工作方式,也不容易遗漏重要的问题和提醒. 在Windows习惯的驱使下,大多数人是不会看弹出的对话框中有什么信息的 ...

  7. git学习——git理解和仓库的创建

    一.git用的3个工作的状态的理解. 1. 工作区 workspace(modified); 2. 暂存区 stage(staged) ; 3. git本地仓库 repository(commited ...

  8. git format-patch & git apply & git clean

    一.打补丁 git format-patch & git apply 最近在工作中遇到打补丁的需求,一来觉得直接传文件有些low(而且我尝试了一下,差点把项目代码毁了) ,二来也是想学习一下, ...

  9. [git]图解git常用命令

    本文图解git中最常用的命令.如果你稍微理解git的工作原理,这篇文章能够让你理解的更透彻. 基本用法 约定 命令详解 Diff Commit Checkout Detached HEAD(匿名分支提 ...

  10. Android Studio配置Git及Git文件状态说明

    Android Studio配置Git还是比较简单的,麻烦的是可能中间出现各种问题.如果你想了解或感兴趣,请往下看. 首先你得下载Git客户端,网址:http://git-scm.com/downlo ...

随机推荐

  1. 【原】安装mongo的php插件

    http://pecl.php.net/package/mongo https://github.com/mongodb/mongo-php-driver/tarball/master 1. 安装mo ...

  2. ORA-27092: size of file exceeds file size limit of the process

    停数据库时遇到下述问题: $ ./addbctl.sh stop You are running addbctl.sh version 120.1 Shutting down database UAT ...

  3. 用于列出选项的Windows窗体控件

    可以提供选项列表的控件有ListBox.ComboBox.CheckedListBox,如何正确的使用和选择这些控件,下面对此进行讨论.首先对这三种控件的功能分别进行说明: ListBox ListB ...

  4. hive日期函数

    今天select from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:mm:ss') UNIX时间戳转日期函数: from_unixtime 语法: from_ ...

  5. html嵌套表格示例

    常用嵌套表格示例,出自<网页开发手记:HTML+CSS+JavaScript实战详解>   <html>   <head>   <title>嵌套表格布 ...

  6. SSH基本框架搭建后的简化

    对于SSh框架的简化,我们可以从下面几个方面来剖析: 1.实体类entity:在这里我们需要将数据库和实体类进行关联,在简化之前,我们需要在entity包里面加入一份.xml配置文件 例如原码---- ...

  7. 百思不得骑姐的问题——难道是控件的bug?

    直接进入主题,困惑了一下午了. 要实现的功能: winform的checkedlistbox控件 点击  “全部”  就都选上,可是如果点击过快就会出现如上现象,下面选项未显示选中. 代码如下: pr ...

  8. iOS开发-Alcatraz插件管理

    CocoaPod负责iOS开发中的引用类库的管理,Alcatraz中文翻译阿尔卡特拉斯岛,也有人称之为恶魔岛,主要是负责管理第三方Xcode 插件.模版以及颜色配置的工具,直接集成到 Xcode 的图 ...

  9. VS调试在Win7(vista系列)操作系统下 HttpListener拒绝访问解决办法

    一. VS调试在Win7(vista系列)操作系统下 HttpListener无法绑定多个 指定IP.端口问题 来自:http://www.cnblogs.com/ryhan/p/4195693.ht ...

  10. iframe跨域访问

    js跨域是个讨论很多的话题.iframe跨域访问也被研究的很透了. 一般分两种情况: 一. 是同主域下面,不同子域之间的跨域: 同主域,不同子域跨域,设置相同的document.domian就可以解决 ...