同期化(差分を見る)

Posted by muchag | Eclipse,Git | 2015-12-18 (金) 16:13:33

【環境】
Eclipse: Mars.1 (4.5.1) PHP
手法
同期化パースペクティブを開くまで

いきなり [チーム同期化] パースペクティブを開くと、
[データ読み込み] か [同期化] か選べ!
と言われて、困ったw

Git
  1. [Git リポジトリー] ビュー
  2. 当該プロジェクトを開く
  3. [ブランチ] を開く
  4. [ローカル] または [リモート・トラッキング] を開く
  5. 当該ブランチのコンテキストメニューから [ワークスペースと同期化] をクリック
  6. 「[チーム同期化] パースペクティブを開くよ」というダイアログが出るので [はい]
  7. [チーム同期化] パースペクティブが開く
同期化パースペクティブ
ローカルブランチから開いた場合

この場合は、ローカルリポジトリと編集中ファイルの差分を見ることになる。

差分のあるファイルがプロジェクトツリーとして表示されているので
目的のファイルをダブルクリックすれば、差分用の左右に並んだビューが開く。

リモート・トラッキングブランチから開いた場合

この場合は、リモートリポジトリ、ローカルリポジトリ、編集中ファイルの三者の差分を同時に見ることになる。
未試行。

三者同時なので、場合分けをされてツリー表示されるみたい。
この先は試していないので、参考サイト参照。

参考サイト

kakiro-web:EclipseでGitをクライアント用途として使用(EGit)(その2)

Eclipse,Git | 2015-12-18 (金) 16:13:33 |

マージ禁止

Posted by muchag | Git | 2015-12-16 (水) 15:08:37

開発環境と本番環境では、どうしても差分が出る。
その差分への対処に頭を悩ませていたけど
他の情報を検索しているときに、素敵な記事を発見した♪
サボり屋の技術メモ:Gitで内容が異なるファイルをマージ対象から除外(無視)する設定

状況

開発環境で開発用に用意しているファイルを本番環境には入れたくない。

具体例

OpenPNE3 では、開発用に下記開発用ページが用意されている。

api_dev.php
mobile_frontend_dev.php
pc_backend_dev.php
pc_frontend_dev.php

これらは、開発環境では利用をするけど
本番環境に上がったらエライことになる。

対応策

Git の設定で何とかなりそう!

  • 別ブランチ(develop から master など)へのマージの際に除外される
  • 下記はそのまま利用できる
    • develop ブランチでのコミット
    • リモートへのプッシュ
    • リモートから他へのマシンのプル

おおお、これぞ正しく探していた方法。

master 以外のブランチ

feature ブランチや release ブランチを新規作成するときは
マージではなくリセット?(コピー)なので、release ブランチへは入っちゃうのかも。
でも、そこから master へいけないはずだから、理論上は問題ないはず。

master と release

ただ、release は、できる限り master と同一性を保証したいので
今後の行方を見守らなければ。

手法
設定ファイル
  • .gitglobal
  • 各リポジトリの .git/config

いずれかに、記述。

内容
  1. [merge "ours"]
  2.     name = "Keep ours merge"
  3.     driver = true

[merge “ours”] の config設定は固定です。特殊なマージエンジンを有効化しているらしい。

サボり屋の技術メモ:Gitで内容が異なるファイルをマージ対象から除外(無視)する設定

んむ。
まんま書くことにしよう。。。

.gitattributes

上記で設定した merge=ours という文字列を、マージしたくないファイル名の後に付ける。

  1. ignore_target_file.txt merge=ours
書式
  • .gitignore と真似る
  • ファイル名
    • .gitignore と真似る
    • ファイル名
      • フルパス
      • .gitignore 同様、ワイルドカードを利用できる
        • web/*_dev.php
結果
develop → master マージ

確かに、上記4ファイルは、develop には存在し、master には存在しない。
.gitattributes は、両ブランチに存在する。

やった~!

develop → origin/develop プッシュ

確かに、上記4ファイルは存在したまま。
ただ、develop ブランチでは、存在するのが当たり前なので
まだよくわからない。
変更するファイルじゃないしな~。

origin/develop → 他のマシンへのプル

無事に .gitattributes ファイルがプルされました。
ん~、こちらも問題があるかどうかは不明。

Git | 2015-12-16 (水) 15:08:37 |

逆引き Git

Posted by muchag | Git | 2015-12-16 (水) 11:43:05

Git の逆引き情報は、結構あるので助かる~。
自分がぶつかった壁を随時追加していきまする。

ブランチを切り替えたら、変更内容が引き継がれている

BranchA で、FileX を編集をして BranchB へ切り替えたら、
FileX の編集内容が引き継がれている。

原因

BranchA での変更をコミットしていないから。

解決策
  1. BranchA でコミットをしてから、ブランチを切り替える
  2. BranchA で Stash してから、ブランチを切り替える
参考サイト

@IT:Gitでbranchを変えるときに、ファイルの変更はどう扱えばいいのか?

Git | 2015-12-16 (水) 11:43:05 |

Git Index

Posted by muchag | Git | 2015-12-14 (月) 10:13:59

丸っきりの書きかけ項目は Not found になる。 
 
では~ スタート~!!

設定
  1. マージ禁止
GUI
  1. SourceTree
    1. 導入
    2. コミット
    3. git-flow
ホスト
  1. Bitbucket

 

がい~ん!(はまったこと)
  1. 解決済み(たぶん)
  2. 未解決
  3. 逆引き Git
参考サイト

GitHub Gist:Instantly share code, notes, and snippets.

Git | 2015-12-14 (月) 10:13:59 |