git以及git flow 的使用
转载: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 的使用的更多相关文章
- 从VSS到SVN再到Git 记Git的基本操作
Source code control 一直是软件开发过程中重要的环节,从最初的纯文件备份,到使用工具进行管理.Source code control 工具的作用也不仅仅只是单纯的对同一个版本进行管理 ...
- Git版本控制 Git、github,gitlab相关操作
目录 关于版本控制 版本管理工具 集中式管理 分布式管理 git版本管理 git介绍 软件安装 Git工作状态 原理流程步骤 git基本操作 对文件进行修改 分支 共享仓库 创建共享仓库: 共享仓库上 ...
- [Git] 还原Git上commit,但是没有push代码
直接在Idea上操作2步解决: 1. 找到: 2. 在To Commit里面填写:HEAD^,表示将commit的信息还原为上一次的,需要多次直接reset多次即可: 使用命令行:原理一样 以下内容转 ...
- 命令行操作svn和git和git
前几天在写代码的时候电脑突然坏掉,老大交代的任务没完成,非常痛恨自己用svn或者git保存代码,相信很多程序员遇到过,硬盘坏掉,存在硬盘中的代码丢失,无法找回的问题,svn和git可谓程序员界的福音, ...
- Git:Git初体验——Git安装配置
作为即将成为一个程序员的男人,一直在听别人说Git多好多好,之前也随便了解了一些,但是始终没有决心去学会.现在大四了,只有毕设和一门开学六七周只去过一次课的全员必修课外,也没有什么事情做,何不去做这些 ...
- 使用Git、Git GUI和TortoiseGit
1. 关于命令行 我一直建议在命令行中使用Git或者SVN.因为这样可能更加了解他们的工作方式,也不容易遗漏重要的问题和提醒. 在Windows习惯的驱使下,大多数人是不会看弹出的对话框中有什么信息的 ...
- git学习——git理解和仓库的创建
一.git用的3个工作的状态的理解. 1. 工作区 workspace(modified); 2. 暂存区 stage(staged) ; 3. git本地仓库 repository(commited ...
- git format-patch & git apply & git clean
一.打补丁 git format-patch & git apply 最近在工作中遇到打补丁的需求,一来觉得直接传文件有些low(而且我尝试了一下,差点把项目代码毁了) ,二来也是想学习一下, ...
- [git]图解git常用命令
本文图解git中最常用的命令.如果你稍微理解git的工作原理,这篇文章能够让你理解的更透彻. 基本用法 约定 命令详解 Diff Commit Checkout Detached HEAD(匿名分支提 ...
- Android Studio配置Git及Git文件状态说明
Android Studio配置Git还是比较简单的,麻烦的是可能中间出现各种问题.如果你想了解或感兴趣,请往下看. 首先你得下载Git客户端,网址:http://git-scm.com/downlo ...
随机推荐
- HDU2047
http://acm.hdu.edu.cn/showproblem.php?pid=2047 对于这道题,我就从后面向前面考虑. 当第n个是o的话,那么n-1 只可以取e或者f,如果n是e或者f的话, ...
- Appium for Mac 环境准备篇
之前写过一篇Appium for windows的文章,因为是09年的T400,启动Android模拟器的时候死机三次,那就公司申请台Macbook air吧,15寸的Macbook Pro实在太重了 ...
- HTML中行内元素与块级元素的区别
块级元素:独占一行,可设宽高,内外边距:块级元素有form,p,h1到h6,ol ,ul ,dl和dd和dt ,hr,li,pre,caption ,div ,table ,tr ,td ,th等. ...
- UIAutomator 编译
环境搭建 1.必备条件: 1.JDK 2.SDK(API高于15) 3.Eclipse(安装ADT插件) 4.ANT(用于编译生成jar) 2.简要步骤: 1.安装JDK并添加环境变 ...
- POS管理系统之设备出库
JSP: <html> <head> <title>登录</title> <style type="text/css&quo ...
- 基于mini2440的boa服务器移植
win7 系统 开发板:mini2440 虚拟机:ubuntu12.04 准备工作:确保主机与开发板之间能够正常通信,即能够ping通,具体的操作课参考我上一篇随笔. 1.首先从 http://ww ...
- ajax跨域请求带cookie
调用网站:a.xxx.com jQuery(document).ready(function () { $.ajax({ type: "get", async: true, url ...
- NRF51822之修改设备名(掉电不保存)
主要代码 /**@brief Function for handling the Application's BLE Stack events. * * @param[in] p_ble_evt Bl ...
- 计算机网络 学习笔记-传输层:TCP协议简介
概述: TCP传输前先要建立连接 TCP在传输层 点对点,一条TCP只能连接两个端点 可靠传输.无差错.不丢失.不重复.按顺序 全双工 字节流 TCP报文段 TCP报文段的报头前20字节是固定的,后面 ...
- Python 之WEB前端插件
1.Font Awesome ---- 设计字体,图标 2.EasyUI ---- 各种功能 3.JqueryUI ---- 类似EasyUI 4.bootstrap ---- 必须引入JQuery( ...