关于Git和git-flow [个人备忘录]
关于Git。
参考网站
猴子也能理解的Git入门指南:http://www.backlog.jp/git-guide/reference/
使用Git的20个命令,以精通Git的技巧(source:https://osdn.jp/magazine/09/03/16/0831212)
确认git命令中与github相关的传送目标,使用git remote -v命令。这个命令还可以用来确认与heroku相关的传送目标。
将git flow仓库推送到GitHub,命令为git push -u origin master(推送到主分支), git push -u origin develop(推送到开发分支),git push -f origin master(强制推送到主分支)。
将Github的目的地注册为git远程add origin git@github.com:hogehoge/sample-app.git。
注册Heroku的目的地
git remote add heroku https://git.heroku.com/sample.git
・想要更改GitHub的发送地址(想要更改已注册的远程仓库的地址)(更改推送到GitHub时的origin的方法)可以使用git remote set-url命令(仓库名称)(新仓库的URL)例如:git remote set-url origin git@github.com:hogehoge-app/hoge_fuga.git ※在GitHub上的情况下。
将git远程URL设置为https://hub.jazz.net/git/ailes/Ailes.1(仅适用于bluemix)。
将 Heroku 的远程 URL 设置为 https://git.heroku.com/hogehoge-tor-7235.git .
执行完后,请使用git remote -v确认是否正确修改。
确认当前位于哪个分支上的信息,请查看git branch。
查看提交日志的git log
展示已经进行了更改的文件(可以确认差异变更)git status
展示分支列表 git branch -a
・删除分支git branch -d 分支名 ※例如) git branch -d feature/add-readme-dive
※ 使用git branch确认分支是否已被删除※ 然后执行git pull (pull指更新差异,获取最新信息)※ 如果有未合并到HEAD的提交,无法删除分支。 若要强制删除包含未合并提交的分支,请添加-D选项执行。
切换到指定分支:git checkout 分支名,例如:git checkout develop。
・Github上的Pull Request方式(pull指的是差分更新)http://qiita.com/samurairunner/items/7442521bce2d6ac9330b
从上次提交到这次注册的内容差异确认git diff HEAD^ HEAD –stat。
关于Git Flow的内容
安装Git Flow(是否不使用?)
团队开发(Git-Flow领导者版)
Git flow 是一种流程
在引入git flow之前,首先在GitHub上创建一个仓库。
在进行以下作业之前,先完成以下URL中的作业!!
将Git与Github进行关联(第一次,创建个人仓库)
在进行任务之前,需在GitHub上设置里程碑(Milestone)和注册问题(Issue)!!首先,创建GitHub仓库时撰写README文件,或在Nitrous的README文件中写入。具体操作请参考文本说明。
参考网站:http://www.atmarkit.co.jp/ait/articles/1401/06/news013.html
[团队的情况下] de xià)
1. 收到招待邮件。点击链接前往GitHub页面。
2. 请复制SSH链接中的文本。 复制后,在Nitrous中的当前目录使用”code”状态进行克隆。执行”git clone “加上复制的SSH文本并按Enter。※执行”git clone”命令,将远程仓库复制到本地仓库。
在克隆的应用的当前目录中安装git flow,执行sudo apt-get install git-flow命令。在控制台中输入”git flow”命令并执行,如果显示了”usage: git flow…”,则表示安装成功。
进行git flow的初始设置(在克隆应用程序的当前目录中)
git flow init -d ※退出git flow的初始化设置后,将创建develop分支并处于该分支上。基本上,在git flow中,应用程序是在develop分支上进行开发的。
在GitHub上创建develop分支(在创建GitHub存储库时,master分支会自动传送到GitHub存储库)。使用git push -u origin develop命令。
6. 切出功能分支(功能分支由开发分支切出)。例如:git checkout develop(切换到开发分支);git flow feature start 分支名;git flow feature start add-readme-tanaka;git flow feature start add-user。
6. 开始任务→任务结束后git add -Agit commit -m”我的个人资料”
7. 当提交完后,接下来要将本地仓库推送到远程仓库,使用命令 git push -u origin feature/add-readme-tanaka※ 执行该命令后,GitHub上将会创建一个feature分支。※ 若要创建GitHub上的master分支,请使用命令 git push -u origin master※ 若要创建develop分支,请使用命令 git push -u origin develop。
8. 按下推送后,确认在GitHub上是否成功推送。
9. 确认自己的分支后,执行拉取请求。通过执行拉取请求,可以确认自己真正开发的功能、修改或添加的内容是否可以合并到develop(主分支)中。在拉取请求中需详细描述自己进行了什么操作。不改变标题格式,将内容添加在标题后面。
– 选择发送的分支(从master到feature/add-blog)
– 确认左侧显示发送的分支名称,
点击[比较并拉取请求]
– 基本分支: develop ・・・比较分支: feature/add-blog
– 输入标题和内容,
点击[创建拉取请求]
※然后等待其他成员查看,并将其合并到master分支,如果有修改点,则继续提交并推送,将其纳入develop或master分支中。
10. 当有新的 Pull Request 创建时,开发者会进行审查并决定是否合并。
11. 删除不再需要的特性分支。P15 git checkout develop git branch -d feature/add-readme-tanaka ※ git branch -d 分支名
为了将在GitHub上develop上反映的工作内容同步到本地git的develop分支上,需要切换到develop分支。使用命令git checkout develop※ [STEP1]安装Git Flow的第8/9页。
将在GitHub上develop分支上的工作内容同步到本地git的develop分支上(通过pull获取最新信息)。如果不把它更新到最新状态而尝试push,可能会遇到其他成员已经进行push而无法成功push的情况。在进行分支操作时,如果只想将更新内容反映到特定分支上,可以使用命令git pull origin 分支名。[STEP1] Git flow的安装第8/9页。
当开发完成并进入应用程序发布阶段时,在develop分支上创建release分支。在release分支上进行与发布相关的工作。一般来说,主要是修正细节文档和错误。当准备就绪并要发布时,将release分支合并到master分支并打上发布标签。通过这样做可以确认发布时的源代码。在git-flow分支模型中,不在master分支上进行提交。因此,通过查看master分支,可以了解发布的代码状态。此外,将在release分支上进行的工作内容同时合并到develop分支,确保最新的开发版本得到反映。这样可以避免漏掉在发布时进行的缺陷修复对develop分支的影响。git flow release start v1.0(从develop分支创建)
进行与发布相关的工作,如创建详细文档和修复错误等。
完成工作后,
↓
将其合并到master分支。打上发布标签。
↓
将在release分支上进行的工作内容同时合并到develop分支。确保develop分支成为最新的开发版本。
完成工作后,
git push -u origin release / v1.0
↓
选择要推送的分支(master→release)
在master分支上发起Pull Request。如果通过,将被合并。
↓
在release分支上进行的工作内容也要发起Pull Request,并通过后进行合并到develop分支。
从主分支创建一个热修复分支,命名为git flow hotfix start v1.0.1 。
・如果要将代码推送到Heroku(git push heroku master),在在GitHub上将代码合并到master分支后,用git checkout命令将Nitrous的分支切换到master。
↓
然后执行git pull。
↓
最后执行git push heroku master。
【重要】在GitHub上进行操作
为了防止通过git push –force命令强制推送到分支,可以按照以下步骤:
1. 进入相应的仓库并点击设置(setting)。
2. 进入分支(Branches)选项。
3. 勾选“保护此分支”(Protect this branch)。
4. 勾选“合并前要求状态检查通过”(require status checks to pass before merging)。
※ 这样可以防止由开发负责人以外的人进行强制推送。
Git Flow点
特性分支和发行分支是从开发分支创建的。
热修复分支是从主分支(master)创建的。
Git流命令
创建特性分支(从develop分支切出分支)git flow feature start 分支名 ※ git flow feature start add-readme-tanaka。
确认git flow可以使用的命令