質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.48%

特殊なローカル環境でのGitによる履歴管理方法

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 999

score 24

適切なタイトルが思いつかなかったので分かりづらいかもしれませんが、
Gitで次のような運用をする場合にラクでうまい方法はないでしょうか?

まず、リモートリポジトリにはA→B→Cという変更された履歴があるとします。
(A/B/Cはリビション)
これをローカルPCにクローンして開発するのですが、
ローカルPC側の事情で取得したコードそのままでは開発ができないので、
ローカルリポジトリ上では少し改造してから開発をすすめる必要があるとします。
そこで、ローカルではA→B→C→C'という風に別ブランチを切って開発をすすめるとします。
(’ダッシュはブランチと考えて下さい)

ローカルで開発を進めると、A→B→C→C'→D'→E'と進みますが、
ここでリモートにプッシュするときにどうするのがいいのだろう?ということです。
E'をそのままプッシュすると、C'での変更は他の開発者の環境に合わないので迷惑がかかります。
貴方なら以下のどの方法を採用しますか?

  1. cherry-pickを使う方法。Cを起点にして、D'とE'をcherry-pickすることで、
    C→D→Eとmasterブランチを進めてからEをプッシュする。
  2. revertを使う方法。E'の段階でC'をrevertすることで変更を打ち消してから、プッシュする。
    つまり、E'+(revert C')→Eとして、Eをプッシュ。
  3. rebase -iする方法。E'の段階でC~E'をrebase -iして、ローカルリポジトリの
    履歴ごと変える。つまり、C→D'→E'→C'の順序になるようにrebaseし直して、
    ひとつ前のE'をリモートにプッシュする。
  4. (あれば)その他の方法・・・

お気づきのデメリットなどもあれば、ご指摘下さい。

なお、諸般の事情により「自分のPCの環境を、他の開発者に合わせる」ということは
できないものとします。
よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

DBの設定ファイルだけ自分用にするとかですか?
更新を無視するようにしたらどうですか?

既に git 管理しているファイルをあえて無視したい

そうじゃなくて、その対象ファイルもマージの可能性がある場合は、わたしは「 1. 」を選びます。
っていうかそれくらいしか使い方知らない・・・

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/29 14:26

    ありがとうございます。

    DBの設定ファイルとかではなく、アプリケーション開発のプロジェクト設定ファイルです。私だけが開発環境(コンパイラバージョン)がちょっと違うんで、プロジェクト設定ファイルも一部違っています。
    頻繁ではないのですが、このプロジェクトファイルは私も他の人も変更することがありますので、更新しないという訳には行かないです。通常は更新せずに、変更があった時だけいったん元に戻してからプッシュするという方法もありなのですが面倒で・・・

    ローカルもリモートも履歴が残せるという意味ではやはり1ですかね。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.48%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る