katapedia
  • README
  • doc
    • Ansible
    • Assert
    • Astah
    • Autohotkey
    • CI
    • C_Cpp
    • CentOS6x系でhttp認証に失敗する
    • Chef
    • Clipboard
    • コーディング
    • Configure
    • Console2_NYAOS
    • Debian系RedHat系の違い
    • DesignDoc目次サンプル
    • Docker
    • Doxygenコメント規約
    • Eclipse
    • Excel
    • FAQ
    • Footer
    • Git
    • GitBucket
    • GitBucketとJenkins連携
    • GitBucketとRocketChat連携
    • GitHub
    • GitLab
    • Gitで大量のファイルの中から必要ファイルのみをaddする方法
    • GitのGUI比較
    • Gitのリポジトリがでかくなったときの削減の昔のやり方
    • Gitワークフロー
    • Go
    • Googletest
    • Gradle
    • Grafana
    • Groovy
    • Haroopad
    • Haskell
    • Htmlpdfに直リンクする(ダウンロードしない)方法
    • IT業界
    • Java
    • Javascript
    • Javascriptrライブラリ・フレームワーク一覧
    • Jenkins
    • JetBrains_IDE
    • Linux
    • Linux Command
    • Linux Distribution
    • Makefile
    • Maven
    • MicrosoftProject
    • NoSQL
    • Omniauthによるアカウント統合
    • Outlook
    • PHP
    • Prometheus_Loki
    • Python
    • RDB
    • Redmine
    • RedmineDドライブへの保存
    • Redmineアップデート
    • Redmineプラグイン
    • Redmineメール通知
    • Redmine文字化け
    • Ruby
    • Rust
    • R言語
    • SVN
    • Sidebar
    • Solaris
    • Staticまとめ
    • Terraform
    • Thinkpad
    • Tmux
    • ToDoリスト
    • UML
    • Vagrant
    • Vim/Neovim
    • VirtualBox
    • Visio
    • Webアプリケーション
    • Webサーバ
    • Webブラウザ
    • Webブラウジング
    • Webページ備忘録
    • Windows
    • Word
    • Zabbix
    • Zsh
    • C#
    • dotfiles
    • html_css
    • Lua
    • sonarqube
    • terminal
    • tweetまとめ
    • xrdp
    • お預り証サンプル
    • その他Webサービス
    • その他ツール
    • よく使う英語
    • アジェンダサンプル
    • アジャイル宣言
    • アンチパターン
    • インシデント
    • エディタ・IDE
    • エンジニアリングスキル
    • オンプレミスサーバ管理
    • オープンソースライセンス
    • キックオフミーティング
    • コミットメッセージでよく使う英語
    • サーバデータ移行
    • サーバ環境構築
    • シェルスクリプト
    • セキュリティ
    • ソフトウェア開発
    • チャットツール
    • チーム構築
    • ツール調査履歴
    • テスト
    • デザイン
    • デザインパターン
    • ドキュメント
    • ネットワーク
    • ノート
    • バージョン番号
    • ビジネスモデル
    • プラクティス一覧
    • プラグイン調査
    • プログラマがやってはいけない97のこと
    • プログラミングテクニック
    • プログラム
    • プログラムエラー集
    • プロジェクトマネージメント
    • プロダクトマネージメント
    • ヘルプ文
    • ライフハック
    • リソース設計
    • リバースエンジニアリングツール
    • リリースノート
    • リリースノートサンプル1
    • リンク
    • レビュー
    • 人月の神話
    • 人間のあれこれ
    • 仕事のあれこれ
    • 会議
    • 作業報告項目サンプル
    • 例外処理
    • 勉強
    • 名言・教訓
    • 品質管理
    • 教育
    • 数学
    • 文書レビュー観点
    • 朝会
    • 未来技術
    • 林檎の木のものを持ってきた
    • 正規表現
    • 物理
    • 知識データベース
    • 紛らわしい・似たような用語
    • 経営
    • 経済
    • 自作template_class_でundefined_reference_to
    • 要求分析・要件定義
    • 見積もり
    • 設計
    • 評価
    • 認証
    • 議事録サンプル
    • 運用・保守
    • 開発インフラ
    • 開発環境
    • 開発計画
    • 関数名でよく使われる英単語
    • 関数命名規約
    • 関数型言語
    • 雑多メモ
    • 面接
Powered by GitBook
On this page
  1. doc

Gitワークフロー

  • 準備

    ローカルのmasterに移動する

$ git checkout master

ローカルのmasterをリモートと同期する

$ git pull origin/master

masterから、作業用のブランチを作成する。

$ git checkout -b branchname master

ブランチ名は担当者名と作業名をスラッシュで結合したものとする。

例: taro/featurename, taro/bugname

  • コーディング

    コードを書く。

コミットする。

$ git status

$ git add filename

$ git commit -m "コメント"

直前のコミットを取り消す場合:

$ git reset --soft HEAD^

コーディングとコミットを繰り返す。

コミットは頻繁に、どのような単位で行なっても良い。

コーディング中の更新履歴は汚くなっても良い。

リモートのmasterに追随する(時々 and 最終テスト前):

masterの更新を取得する。

$ git fetch origin/master

masterの更新の内容を確認する。

$ git log --oneline--prety=medium -10 origin/master

masterに更新に追随するためにrebaseする。

$ git rebase origin/master

作業を中断して他のブランチに移動する前に:

すべてコミットする。

$ git commit

もしくは、一時保存する。

$ git stash "コメント"

他のブランチから戻ってきたら。

$ git stash list

$ git stash pop

コーディング、テストを終え、他のメンバーに渡せる状態になったら、次の「マージ」に進む。

  • マージ

    新機能の追加など、チーム内部で機能レビューが必要な場合は、ステージング環境にマージ、デプロイ、機能レビューする。

バグや小さな変更など、機能レビューが不要な場合は、プロダクション環境にマージする。

  • ステージング(dev)

    devに移動する。

$ git checkout dev

devをリモートと同期する。

$ git pull origin/dev

masterに追随するために、rebaseする。

$ git rebase origin/master

対象のブランチに移動する。

$ git checkout branchname

devに更新に追随するためにrebaseする。

$ git rebase dev

これにより、masterには未適用だがdevに適用されている更新がブランチに適用されるので、ローカルでテストする。 バグ等あれば、ローカルで修正する。

これによる変更がなかった場合は、ステージングへのマージへそのまま進んで良い。

devに移動する。

$ git checkout dev

devにブランチをマージする。

$ git merge --squash branchname

$ git commit -m "コメント"

リモートにdevをpushする。

$ git push

ステージング環境にデプロイする。

ステージング環境でテスト、機能レビューする。

ダクション(master)

masterに移動する。

$ git checkout master

masterをリモートと同期する。

$ git pull origin/master

対象のブランチに移動する。

$ git checkout branchname

masterに更新に追随するためにrebaseする。

$ git rebase master

ステージングで機能テストしていた場合、devのみに適用されている更新が取り除かれるので、ローカルでテストする。 バグ等あれば、ローカルで修正する。

これによる変更がなかった場合は、マージへそのまま進んで良い。

masterに移動する。

$ git checkout master

masterにブランチをマージする。

$ git merge --squash branchname

$ git commit -m "コメント"

リモートにmasterをpushする。

$ git push

ブランチを削除する(しばらく待ったほうが良い?)。

$ git branch -D branchname

  • リリース

    プロダクションへのデプロイは、責任者が更新内容を確認してから行う。

masterに移動する。

$ git checkout master

masterをリモートと同期する。

$ git pull origin/master

前回のデプロイ移行の、masterの更新履歴を確認する。

$ git log

必要に応じて、前回のデプロイ時との差分を確認する

タグをつける。

$ git tag 2012.01.26

プロダクション環境にデプロイする。

PreviousGitのリポジトリがでかくなったときの削減の昔のやり方NextGo

Last updated 7 years ago