【Git】ssh接続先のレンタルサーバーpullしてconflictおきたら対応できる?vimを使えるようになろう
更新日:2025/05/03
普段はレンタルサーバー上でconflictなんて起きないです、、なぜ起きたのかがまず分からず
ssh接続先でVimが扱えないので苦肉の策を実施しました、、

merge状態を無理やりリセットしてブランチ削除→fetchで取り直すという、力技
Vimが扱えないので、選択肢がかぎられてました。
何がしたいかというと「修正ブランチのローカル開発環境の内容をテストデプロイをしたいだけ」でした。
つまり「ローカルの修正ブランチのHEAD(現在のチェックアウト)をそのまま反映」でOK
ssh接続先との差分や競合は考えなくてもいいわけです
- レンタルサーバー上で別のブランチ(ひとまず何でもいい)に切り替えてます
git checkout 別のブランチ- そのコンフリクトが起きたレンタルサーバーのローカルブランチを削除
// 下記のオプションはマージ済みでない場合警告が出て、削除できないので、今回の場合は削除できませんね、、
// git branch -d 修正ブランチ名
// 強制的な削除
git branch -D 修正ブランチ名- 改めて同じリモートブランチをfetch
git fetch origin 修正ブランチ名:修正ブランチ名そもそもブランチ戦略が整備されていないのが原因
ワークフローをしっかり定めていればデプロイで事故も起きえないということで、下記まとめ比較です
| 項目 | GitHub Flow | git-flow |
|---|---|---|
| 目的 | 継続的デリバリー(CD)向け | 機能リリースの段階管理(大規模開発向け) |
| ブランチ構成 | main + feature/* | main, develop, feature/*, release/*, hotfix/* |
| 開発ベースブランチ | main(または trunk) | develop |
| マージ対象 | main に直接PR | feature→develop→release→main の順 |
| CI/CD前提か? | 必須(ないと破綻する) | 任意(古典的な運用でも可能) |
| ブランチ寿命 | 基本的に短命、使い捨て | develop, main は長寿命 |
| リリース制御の仕組み | 基本「即時デプロイ」 | releaseブランチでリリース準備、検証あり |
| 緊急対応(hotfix) | mainから直接ブランチ切って対応 | hotfixブランチで対応 |
| 複数バージョン管理 | 基本的に不可 | releaseで複数バージョン管理が可能 |
| 適しているプロジェクト | Webアプリ、SaaS、CI/CDが整備された環境 | パッケージ製品、オンプレ、重リリース型 |
| 学習コスト | 低い(初心者向け) | 高い(構造理解が必要) |
| 実際の運用難易度 | 低いが、CI/CD整備しないと危険 | 高いが、ルールが明確で事故は起きにくい |
Vimを最低限つかえるようになろう
まずVimとは
vimはUNIX環境(macOSやLinuxの“おじいちゃん”的存在”)でよく使用されるコマンドラインで使えるテキストエディタです!
よく使われるシーン
- SSH でサーバーに入ってファイルを編集したいとき
- git のコミットコメントを入力するとき(デフォで vim が開く設定になってることが多い)
- Dockerfile、cron、nginx、php.ini など設定ファイル編集
- マージコンフリクトの手動解決(今回みたいなケース!)
起動: vim ファイル名
モード切替:
i → 挿入モード(編集)
[Esc] → ノーマルモード(操作)
:w → 保存
:q → 終了
:wq → 保存して終了
:q! → 保存せずに終了(強制終了)
カーソル移動(ノーマルモード):
h ← j ↓ k ↑ l →
gg → ファイル先頭
G → ファイル末尾
/文字列 → 検索
実際、vim使える人って多いの?
……体感で言うと
- エンジニア全体:5〜6割は「最低限使える」
- インフラ寄りやDevOps:8割以上はガッツリ使う
- フロント寄りや非UNIX系:2〜3割
「vimバリバリ!」って人は実はそこまで多くないけど、「最低限の操作はできる」って人は多い!
特にSSH越しの作業があると、vimが“逃げられない必須スキル”になることがあるから、ちょっとずつ慣れておくと安心ですね
Windowsでvimをインストールする手順
Scoopでは「管理者権限不要」でインストールしよう
PS C:\Users\username> vim --version
vim : 用語 'vim' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。
名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください
。
発生場所 行:1 文字:1
+ vim --version
+ ~~~
+ CategoryInfo : ObjectNotFound: (vim:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
// vim はまだインストールされてない状態
PS C:\Users\username> scoop list
Installed apps:
Name Version Source Updated Info
---- ------- ------ ------- ----
7zip 24.09 main 2025-04-10 19:50:19
supabase 2.20.12 main 2025-04-10 19:50:23
// vim が載ってない → 未インストール
// Scoop自体はインストールされているPowerShellで下記コマンドでインストール(どこで実行してもOK!)
scoop install vimRunning post_install script…done.
‘vim’ (9.1.0) was installed successfully!
でインストールされます
C:\
└─ Users\
└─ <ユーザー名>\
└─ scoop\ ← Scoop本体のルート
├─ apps\ ← 実際にインストールされたアプリの本体が入る
│ └─ vim\
│ ├─ 9.1.0000\ ← vimの実体(この中に本物のvim.exeなどがある)
│ └─ current\ ← 現在有効なバージョンへのリンク(例:→ 9.1.0000)
│ ├─ vim.exe ← CLI本体(ここが呼び出される)
│ └─ その他の関連ファイル(docs、runtimeなど)
├─ shims\ ← CLI実行用のショートカット群(PATHに通ってる)
│ └─ vim.exe ← 実行用の中継ファイル(shim)
├─ cache\ ← 一時ファイル(ZIPなどが入る)
├─ buckets\ ← インストール元(GitHubレポジトリ)情報
└─ persist\ ← 永続的な設定や保存データ(ツールによる)scoop install vim の「本体」はバージョン付きのフォルダに入るけど、実行時は常に current が使われてる!
PS C:\Users\username> cd .\Downloads\
PS C:\Users\username\Downloads> vim hello.txt
// ダウンロードフォルダにファイル生成されました拡張機能でVSCodeでvimを使うこともできる
上記のプラグインとVSCodeのショートカットを組み合わせれば、マウスを使用せずにすばやくコーディングできます
| コマンド | 動作 |
|---|---|
| h, j, k, l | 細かい移動 |
| ctrl + y ctrl + e | 画面を一行スクロール、長押しでも |
| ctrl + b ctrl + f | 画面を1画面幅分スクロール |
| ctrl + f12 | ホバーの表示 型とかが表示される |
| コマンド | 動作 |
|---|---|
| alt + d | 選択した文字列と同じ文字列を追加選択 ctrl + dがvimに取られるのでその代わり |
| ctrl + tab | 開いてるファイルの次のファイルに移動 |
| ctrl + shift + tab | 開いてるファイルの前のファイルに移動 |
| ctrl + f12 | ホバーの表示 型とかが表示される |
-
検索
(例) debug search etc.. -
カテゴリー
-
mixhostでのWordPress利用について
更新日:2024/04/02
303 view
-
scrollHint
更新日:2024/03/13
251 view
-
XML Sitemap Generator for Google不具合のダウングレード対応、代替プラグイン
更新日:2024/06/13
243 view
-
【SnowMonkey】納品までのフローまとめ
更新日:2025/02/15
164 view
-
【Snow Monkey】ショートコードで編集画面で任意の場所にHTMLファイルを挿入
更新日:2025/04/18
131 view
-
【Googleサーチコンソール】検索画面で表示させたくない「Googleのインデックス削除」
更新日:2024/06/07
131 view
-
tailwindcss使い方
更新日:2024/03/13
125 view
-
キーワード検索で上位表示させる方法【SEO】
更新日:2023/10/28
120 view
-
Recline: GitHub Copilotで動作するClaude 3.5 Sonnet搭載の開発支援ツール
更新日:2025/01/20
115 view
-
WordPressプラグイン「All-in-One WP Migration」のトラブル
更新日:2022/03/31
84 view
-
ワードプレスセキュリティー対策まとめ【2025年】「site guard wordpress」「BackWPup バージョン5でUI変更!?」
更新日:2025/02/25
77 view
-
VSCodeで開発効率を劇的に向上させる!Roo Code(Roo-Cline)プラグイン完全ガイド
更新日:2025/04/06
75 view
-
Express、FastAPIを使用し、二重fetch構成のメリット
更新日:2025/04/26
51 view
-
SSHを使用してGitHubのリポジトリをクローン、複数の接続元で公開鍵をディレクトリで区別する方法
更新日:2025/01/13
49 view
-
「JSONスキーマ」と「Few-shot Learning」で実現する次世代生成AIソフトウェア開発の可能性
更新日:2025/07/06
44 view
-
Supabase 初心者向け解説、Supabase CLI インストール(Scoop)
更新日:2025/06/07
44 view
-
Windowsショートカットエラーの原因と解決方法「このショートカットは、リンク先のファイルが変更または移動されているので、正しく機能しません」
更新日:2025/02/09
40 view
-
リファクタリング【VSCode Javasctipt Python】
更新日:2025/03/09
37 view
-
Next.jsでAWS Amplifyを使ってPDFアップロード機能を実装、Fast APIにPOST(こちらはApp runner)
更新日:2025/06/06
37 view
-
形態素解析とは?初心者でもわかるツールの使い方と実践例
更新日:2025/02/08
34 view