FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Gitでよく起こる問題と解決方法

Vanです。


luftelliメンバー内で勉強会を行ったので、今回はその内容についてまとめたいと思います。
実は自分であるVanは忘年会の影響で今回の勉強会に参加できなかったので、書いてる自分自身で分かっていない部分だらけですが・・・・・。

今回はCincさんが調査したGitでよく起こる問題と解決方法についてです。


  1. リポジトリのクローンに時間がかかる

    Shallow Cloneにより最新のファイルのみをクローンする
    git clone --depth 1 [URL]
  2. 作業する前にブランチを切り替え忘れた

    1. まだコミットはしてない
      stashコマンドを使う

      1. git stash #現在されている変更を退避する

      2. git checkout [目的のブランチ名]

      3. git stash pop #退避していた変更を元に戻す

    2. コミットしてしまった

      1. git reset --soft HEAD^ #直前のコミットを取り消す

      2. まだコミットしていない場合と同じ手順

  3. 他の人がすでにpushしていた/作業前にpullし忘れた状態でローカルに変更を行ってしまい、pushできない
    pullを行い、必要なら競合の解決をしてから改めてpushする

    1. git pull origin [現在のブランチ名]

    2. 競合が起きたら競合の解決

    3. git push -u origin [現在のブランチ名]

  4. 競合が起きてしまった

    1. 競合が起き得る状況
      同じファイルを変更していても可能な場合は自動でマージしてくれるが、自動マージが不可能な場合は競合部分にマークがつけられるので、自分で解決しなければならない

      1. ローカルとリモート上がともに変更されているときにpullする

      2. 同じファイルが変更されているブランチをマージする

    2. 競合の解決
      競合を解決する場合は、競合が起きたファイルに変更を加えた人とも相談するのがいいと思う

      1. どちらか片方のブランチのファイルを優先する

        1. 現在いるブランチを優先させる場合
          git checkout --ours [ファイル名]
          ファイル名に”.”を指定することで、全てのファイルに対して適用できる

        2. マージ相手やリモートブランチを優先させる場合
          git checkout --theirs [ファイル名]
          ファイル名に”.”を指定することで、全てのファイルに対して適用できる

      2. ファイルを直接編集する
        競合の起きている部分にはマークがつけられている。その部分を自分で修正する。VisualStudioやVIsualStudioCodeではファイルの競合が起きている部分を強調表示してくれたり、どちらを残すか選択すれば自動で書き換えてくれる機能がついている

      3. 編集が終わったら、コミットして作業を再開

  5. なんか色々試したらpushもpullもできなくなってしまった
    下に行くほどめんどくさい方法。-fオプションによる強制pushはリポジトリを壊すことになりかねないのでやめよう

    1. 新しい派生ブランチを作り、そこでpullとpushを試してみる

    2. 変更したファイルをリポジトリ外にコピーして正常なブランチに移動、そこから新しいブランチを作ってコピーしたファイルを元に戻し、pushする

    3. 諦める



むむ?このブログの箇条書きの使い方がつかめず見づらくなってるぞ?

よくわからなかったらコメント欄で質問してください(そもそもこのブログを見ている人などいないとか言ってはいけない)

次回の記事ではGit diffについて紹介します。

スポンサーサイト

非公開コメント

プロフィール

Luftelli

Author:Luftelli
ゲーム開発を行なっている4人のチームLuftelliです。
今はデジゲー博2018に向けて、対戦型シューティングゲーム「LightningGravity」を制作しています。

チーム連絡先: Twitter, メール

メンバー
・Cinc: リーダー、プログラム担当
 個人連絡先: Twitter, メール
・S丼: デザイン・素材管理、GUI・2Dグラフィック担当
・Lui: 広報、音楽・BGM担当
・Van: エフェクト・3Dモデル担当

最新記事
最新コメント
月別アーカイブ
カテゴリ
FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。