`

git git flow 命令

阅读更多

 

==== git ~/.gitconfig  配置 =========

 

[user]
	name = xxx
	email = xxx@126.com
[alias]
    co = checkout
    ci = commit
    st = status
    sh = stash
    br = branch
    pr = pull --rebase
    ruop = remote update origin --prune
[merge]
    tool = vimdiff
[color]
    status = auto
    branch = auto
    ui = auto 
[core]
	excludesfile = ~/.gitignore_global
[difftool "sourcetree"]
	cmd = opendiff \"$LOCAL\" \"$REMOTE\"
	path = 
[mergetool "sourcetree"]
	cmd = /Applications/Sourcetree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
	trustExitCode = true
[commit]
	template = ~/.stCommitMsg
[url "git://github.com"]
	insteadOf = https://github.com
[pull]
	rebase = false
[http]
	proxy = http://127.0.0.1:7890
[https]
	proxy = http://127.0.0.1:7890

  

 

.gitignore 当前目录下,添加忽略文件

# ~/.gitignore_global 

.DS_Store
.idea
.vscode

  

 

====== 配置操作无需密码登录:========

 

$> ssh-keygen -t rsa

Enter file in which to save the key (/u/kim/.ssh/id_rsa): 【回车】

Enter passphrase (empty for no passphrase): 【第一次密码】

Enter same passphrase again: 【第二次密码】

~/.ssh/id_rsa

~/.ssh/id_rsa.pub

 

2. 接下来把密钥文件内容上传到的SSH帐号下:

 

local:~ yourname$ cat ~/.ssh/id_rsa.pub  | ssh severname@host 'cat >> .ssh/authorized_keys 

 

=============== git flow  =======================

 

Git命令

 

1. 创建develop分支

 

首先给默认的master配备一个develop分支。让一个开发者在本地建立一个空的develop分支,然后把它推送到服务器。

$ git branch develop

$ git push -u origin develop

 

2. 小马和小明开始开发新功能

 

 

我们的故事从小马和小明要分别开发新功能开始。他们俩各自建立了自己的分支。注意,他们在创建分支时,父分支不能选择master,而要选择develop。

$ git checkout -b some-feature develop

 

他们俩都在自己的功能开发分支上开展工作。通常就是这种Git三部曲:edit,stage,commit:

$ git status

$ git add <some-file>

$ git commit

 

3. 小马把她的功能开发好了

 

 

在提交过几次代码之后,小马觉得她的功能做完了。如果她所在的团队使用“拉拽请求”,此刻便是一个合适的时机——她可以提出一个将她所完成的功能合并入develop分支的请求。

要不然,她可以自行将她的代码合并入本地的develop分支,然后再推送到中央仓库,像这样:

$ git checkout develop

$ git pull origin develop

$ git merge some-feature

$ git push origin develop

$ git branch -d some-feature # -D

拉取命令确保了本地的develop分支拥有最新的代码——这一步必须在将功能代码合并之前做!注意,新开发的功能代码永远不能直接合并入master。

必要时,还需要解决在代码合并过程中的冲突。

 

4. 小马开始准备一次发布

 

尽管小明还在忙着开发他的功能,小马却可以开始准备这个项目的第一次正式发布了。

类似于功能开发,她使用了一个新的分支来做产品发布的准备工作。在这一步,发布的版本号也最初确定下来。

$ git pull origin develop

$ git checkout -b release-0.1 develop

这个分支专门用于发布前的准备,包括一些清理工作、全面的测试、文档的更新以及任何其他的准备工作。它与用于功能开发的分支相似,不同之处在于它是专为产品发布服务的。

一旦小马创建了这个分支并把它推向中央仓库,这次产品发布包含的功能也就固定下来了。任何还处于开发状态的功能只能等待下一个发布周期。

 

5. 小马完成了发布

 

一切准备就绪之后,小马就要把发布分支合并入master和develop分支,然后再将发布分支删除。

注意,往develop分支的合并是很重要的,因为开发人员可能在发布分支上修复了一些关键的问题,而这些修复对于正在开发中的新功能是有益的。再次提醒一下,如果小马所在的团队强调代码评审(Code Review),此时非常适合提出这样的请求。

$ git checkout master

$ git pull origin master

$ git merge release-0.1

$ git push

$ git checkout develop

$ git pull origin develop

$ git merge release-0.1

$ git push

$ git branch -d release-0.1

 

发布分支扮演的角色是功能开发(develop)与官方发布(master)之间的一个缓冲。无论什么时候你把一些东西合并入master,你都应该随即打上合适的标签。

$ git tag -a 0.1 -m "Initial public release" master

$ git push --tags

 

6. 用户发现了一个Bug

 

当一次发布完成之后,小马便回去与小明一起开发其他功能了。突然,某个用户提出抱怨说当前发布的产品里有一个bug。为了解决这个问题,小马(或者小明)基于master创建了一个用于维护的分支。她在这个分支上修复了那个bug,然后把改动的代码直接合并入master。

$ git checkout -b issue-#001 master

$ git checkout master

$ git pull origin master

$ git merge issue-#001

$ git push

 

跟用于发布的分支一样,在维护分支上的改动也需要合并入develop分支,这一点是很重要的!因此,小马务必不能忘了这一步。随后,她就可以将维护分支删除。

$ git checkout develop

$ git pull origin develop

$ git merge issue-#001

$ git push

$ git branch -d issue-#001

 

 

Git flow 工作流 

 

  • 初始化: git flow init
  • 开始新功能: git flow feature start some-feature
  • 推送一个功能(也就是push到远程): git flow feature publish some-feature
  • 获取新功能: git flow feature pull origin some-feature
  • 完成一个新功能: git flow feature finish some-feature
  • 开始一个发布版本: git flow release start RELEASE [BASE]
  • 推送一个发布版本: git flow release publish RELEASE
  • 完成一个发布版本: git flow release finish RELEASE
  • 推送版本标签:git push --tags
  • 开始一个Hotfix: git flow hotfix start VERSION [BASENAME]
  • 发布一个Hotfix: git flow hotfix finish VERSION

 

# 这个命令会进行一些默认的配置,可以自动创建上面介绍的所有分支:master、develop、feature、relase、hotfix等分支。

$ git flow init

       它会问你一组问题,但是你最好接受默认值:

  No branches exist yet. Base branches must be created now.

  Branch name for production releases: [master] 

  Branch name for "next release" development: [develop] 

  How to name your supporting branch prefixes?

  Feature branches? [feature/] 

  Release branches? [release/] 

  Hotfix branches? [hotfix/] 

  Support branches? [support/] 

  Version tag prefix? []

  完成后当前所在分支就变成 develop. 任何开发都必须从 develop 开始。

 

# 当进行新功能开发的时候:

$ git flow feature start some_awesome_feature

  

# 完成功能开发之后:

$ git flow feature finish some_awesome_feature

 

# 该命令将会把feature/some_awesome_feature合并到develope分支,然后删除功能(feature)分支。将一个 feature 分支推到远程服务器

$ git flow feature publish some_awesome_feature 或者 git push origin feature/some_awesome_feature 

 

# 当你的功能点都完成时(需要发布新版本了),就基于develop创建一个发布(release)分支。

$ git flow release start v0.1.0 

 

当你在完成(finish)一个发布分支时,它会把你所作的修改合并到master分支,同时合并回develop分支,所以,你不需要担心你的master分支比develop分支更加超前。

$ git flow release finish v0.1.0 

 

当系统出现问题的时候,需要进行紧急修改的时候,就好基于master创建一个维护(hotfix)分支。

$ git flow hotfix start v0.1.0

 

当你在完成(finish)一个维护分支时,它会把你所作的修改合并到master分支,同时合并回develop分支。

$ git flow hotfix finish v0.1.0

 

Git  高级用法(慎用)

 

# 克隆项目

$ git clone https://xxxx@xxxx.com/xxxx.git

 

# 查看所有分支(本地及远程)

$ git branch –a

 

# 刷新本地仓库与远程仓库的保持这些改动的同步

$ git remote prune origin

 

# 删除远程分支

$  git push origin --delete some-feature

$  git push origin :some-feature

 

# 拉取远程分支数据,但不合并

$ git fetch origin

 

# 拉取、合并、重置

$ git pull --rebase origin develop

 

# 查看本地有哪些未提交的改动

$ git diff .

 

# 获取所有操作历史  

$ git reflog  

  

# 重置到上一个提交  

$ git reset --hard HEAD~1

  

# 重置到某一个提交  

$ git reset --hard <提交的哈希值>

 

# 重置到和远程develop分支一样

$ git reset --hard origin/develop

 

# Rebase 方法(慎用、慎用、慎用)

$ git rebase HEAD~3

 

# 保存所有本地未提交的文件  

$ git stash save "日志信息"  

  

# 列出所有的暂存项  

$ git stash list  

  

# 获取并删除暂存项  

$ git stash apply stash@{1}

$ git stash drop stash@{1}  

  

# 获取并删除 使用一条命令

$ git stash pop stash@{1}

 

 

分享到:
评论

相关推荐

    Git flow 命令清单

    Git flow 命令清单 提供了详细的命令,有图有真相

    git-flow.pptx

    2. 功能开发:使用 `git flow feature start` 命令来创建新特性分支,开发完成后使用 `git flow feature finish` 命令来合并回 develop 分支。 3. 预发布:使用 `git flow release start` 命令来创建预发布分支,...

    git-flow 备忘清单

    wget -q -O --no-check-certificate https://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh | bash ``` - 需要预先安装 `wget` 和 `util-linux` 工具。 - 更多安装方法可参考官方文档中的 ...

    配合Git flow 流程使用的git 操作命令指南

    # 使用git flow命令创建 git flow feature start 20180820-story-view-999 # 或者使用原生命令 git checkout -b feature/20180820-story-view-999 master ``` 完成开发后,将feature分支推送到远程仓库: ```...

    Git与Git flow的安装

    Git的安装包:Git-1.9.4-preview20140929.exe Git安装完成后,把getopt.exe、libiconv2.dll、libintl3.dll放到git的安装目录的bin目录下。 Git flow的安装与配置;

    git and git flow使用

    这些插件简化了许多常见的Git Flow命令,使得开发者能够更加专注于代码开发本身。 #### 六、最佳实践 - **避免直接在Develop分支上开发大型功能**,建议使用Feature分支。 - **定期同步远程仓库**,确保本地与远程...

    gitflow安装手册

    返回Git Bash命令窗口,执行`git flow`命令,如果看到一系列帮助信息,则说明GitFlow已成功安装。 #### 三、GitFlow的使用与实践 一旦GitFlow安装完毕,就可以开始使用它来管理项目分支了。常见的操作包括: - ...

    gitflow相关文件.zip

    这个名为"gitflow相关文件.zip"的压缩包包含了Git Flow工作流的几个关键组件,用于确保在Windows环境下顺利运行Git Flow命令。下面将详细解释这些组件的作用以及如何在Git环境中设置它们。 1. **Git Flow**: Git ...

    git flow在Windows中的安装

    执行完成后,Git 的安装目录下会新增一个名为 `gitflow` 的文件夹。 ##### 3. 执行批处理命令 - **打开命令提示符**:按下 `Win + R` 键,输入 `cmd` 并按回车键打开命令提示符窗口。如果是 Windows 7 及以上版本...

    gitflow使用指南

    例如,安装GitFlow工具可以通过以下命令完成: ```bash brew install git-flow ``` #### 四、GitFlow图形用户界面工具 除了命令行工具外,还有一些第三方工具提供了更友好的图形用户界面来支持GitFlow工作流,如...

    git项目管理 git flow

    "Git 项目管理 Git Flow" Git 项目管理是一种软件开发方法,它使用 Git 版本控制系统来管理项目代码。Git Flow 是一种流行的 Git 项目管理模式,旨在提供一套结构化的开发工作流程,以提高开发效率和质量。 主干...

    Git基本命令和GitFlow工作流.docx

    Git的基本命令以及GitFlow工作流为团队协作提供了一套完整的工具和流程。正确使用这些命令可以帮助团队高效地管理工作流,提高代码质量和项目管理效率。通过合理的分支管理和交互,可以确保项目的稳定性和可维护性。

    02Git入门理解版本管理的流程 Git Flow

    02★Git入门★理解版本管理的流程_Git_Flow

    gitflow流程图

    gitflow流程图

    git_flow工具介绍

    git_flow工具介绍 Gitflow工作流是经典模型,体现了工作流的经验和精髓。...Gitflow工作流没有用超出功能分支工作流的概念和命令,而是为不同的分支分配一个很明确的角色,并定义分支之间如何和什么时候进行交互。

    git-flow备忘清单

    在Git-flow模型中,建议使用Git-flow命令扩展来辅助操作,它是一组脚本工具,通过这些命令可以更容易地管理不同类型的分支。 Git-flow适用于团队协作开发环境,它有助于理清不同阶段开发工作的边界,使项目的版本...

    git-flow-plus-4idea-1.0.7.zip

    Git Flow Plus 4Idea是针对IntelliJ IDEA开发的一款高效分支管理插件,它的核心功能是基于Git Flow分支模型,旨在为开发团队提供一种结构化、可预测且易于维护的分支策略。Git Flow是一种广泛使用的Git分支管理模式...

Global site tag (gtag.js) - Google Analytics