0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

完璧主義者脱却への道のり! 2025/02/25

Last updated at Posted at 2025-02-26

はじめに

完璧主義者脱却のための日記&学習記録です!(日数を数えるのはやめます)

にっき

今日もエンジニアアルバイトをしていて,特にGitHubの操作に躓いてしまいました.初めてのチーム開発でマージしたりコンフリクトを解消したりするのめっちゃ緊張しませんか?「これで全部台無しにしちゃったらどうしよう」とずっと考えてマージするだけに時間かけてしまいました.
なので今日の学習記録ではその躓いた部分を重点的にまとめたいと思います.

まなんだこと

1. マージ時のコンフリクトを解消する方法

  • ターミナルで解決する場合
    git merge <branch>
    
    コンフリクトが発生した場合,ファイルを手動で編集して修正し,以下を実行:
    git add .
    git commit -m "コンフリクトを解消"
    
  • GitHub上で解決する場合
    • PRの「Resolve conflicts」ボタンをクリックし,編集後「Mark as resolved」してマージ

2. リモートの状態をローカルに完全に反映させる

  • 現在のローカルの変更をすべて破棄
    git fetch origin
    git reset --hard origin/main  # mainブランチの最新状態にリセット
    git clean -fd                 # 追跡されていないファイルも削除
    
  • git fetch origin とは?
    • リモートの最新の状態を取得するが,ワークツリーには適用しない
    • git merge origin/main でローカルブランチに反映可能

3. 不要なファイルを削除した状態で main にマージ

  • ローカルで削除を確定し,main にマージ
    git rm <file>
    git commit -m "不要なファイルを削除"
    git push origin feature
    
  • その後,PRを作成して main にマージ

4. GitHub のリポジトリルールにより git push が拒否される

  • git push origin main でエラー:
    error: GH013: Repository rule violations found
    
  • 原因
    • main への直接プッシュが禁止されている
    • merge commit が禁止されている
  • 解決策
    • PR を作成して main にマージする
    • rebase を利用して履歴を整理する

5. ローカルで git merge origin main を取り消す

  • まだコミットしていない場合
    git merge --abort
    
  • すでにコミットした場合
    git reset --hard HEAD~1  # 直前のマージコミットを削除
    

おわりに

今日は時間がなくて大部分をChatGPTに任せてしまいました.(反省)
明日も頑張ります.

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?