0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VS Code × CodeCommitで「masterに直接反映される問題」を解決する

0
Posted at

# VS Code × CodeCommitで「masterに直接反映される問題」を解決する(図解付き)

## はじめに

VS Code から CodeCommit にコミットしたときに

- master に直接反映されてしまう
- PR を経由したいのにできない
- Aprod を作ったのに使えていない

という問題に直面しました。

この記事では、**原因・仕組み・正しい運用方法**を  
図解(イメージ付き)で整理します。

---

# 結論(先に)

問題の原因はこれです👇

```text
ローカルで master のまま作業していた

そのため:

master → origin/master にそのまま push

となり、PR を経由せずに本流へ反映されていました。


Gitの全体イメージ(超重要)

まずは構造を理解します。

【ローカル(あなたのPC)】
  ├── master        ← 今ここにいた
  └── new_branch    ← 作業用

【リモート(CodeCommit = origin)】
  ├── master
  ├── Aprod
  └── new_branch

originとは何か?

origin = CodeCommit(リモートリポジトリ)
origin/master
origin/new_branch

👉 これは「CodeCommit上のブランチ」を意味します


ブランチとは何か(図解)

master(本流)
   │
   ├── new_branch(作業用)
   │        └── ここで開発
   │
   └── Aprod(古いブランチ)

👉 ブランチは「作業を分けるための線」です


なぜ master に直接反映されたのか

当時の状態👇

git branch --show-current
→ master
git branch -vv
→ origin/master

図で表すと👇

現在位置(★)

master ★
  ↓
origin/master(CodeCommit)

👉 この状態で push すると

master → origin/master

👉 即反映される(PRなし)


Aprodをpullしても意味がなかった理由

勘違いしやすいポイント👇

pull = ブランチ切り替え ❌

実際は👇

pull = 今いるブランチに取り込むだけ

イメージ

今いる場所:master

git pull origin Aprod

↓ 起きること

master に Aprod を混ぜる
(切り替えではない)

👉 だから master 作業のままだった


Aprodでファイルが消えた理由

master
  ├── fileA
  ├── fileB
  └── fileC(最新)

Aprod(古い)
  ├── fileA
  └── fileB

👉 Aprodに切り替えると👇

fileC が見えなくなる

👉 これは正常(壊れていない)


正しい開発フロー(図解)

① master を最新にする
      ↓
② 作業ブランチを作る
      ↓
③ 作業・コミット
      ↓
④ リモートへ push
      ↓
⑤ PR 作成
      ↓
⑥ master にマージ

実際のコマンド(重要)

① master に移動

git switch master

👉 作業の土台に戻る


② 最新化

git pull origin master

👉 CodeCommitの最新を取得


③ ブランチ作成

git switch -c new_branch

👉 これの意味👇

① new_branch を作る
② そのまま切り替える

図👇

master
  ↓
new_branch ★(今ここ)

④ コミット

git add .
git commit -m "修正内容"

⑤ push(重要)

git push -u origin new_branch

図👇

ローカル
  new_branch
      ↓ push
origin(CodeCommit)
  new_branch(作成される)

VS Codeの「Publish Branch」とは?

これ👇

Publish Branch

正体👇

git push -u origin 現在のブランチ

図解

ローカル
  new_branch ★
      ↓
Publish Branch
      ↓
origin/new_branch が作成

👉 masterは触られない


Publish Branchは安全?

✔ 安全なケース

現在のブランチ:new_branch

👉 OK


❌ 危険なケース

現在のブランチ:master

👉 これだと

master → origin/master

最重要チェック

git branch --show-current

✔ 正常

new_branch

❌ 危険

master

PRの流れ(図解)

origin/new_branch
        ↓
   Pull Request
        ↓
origin/master にマージ

よくある勘違い

❌ origin = ブランチ

→ 違う(リモート名)


❌ pullするとブランチが切り替わる

→ 切り替わらない


❌ featureは特別な機能

→ ただの名前


安全運用ルール(これだけ覚えればOK)

① 作業前にブランチ確認
② masterで作業しない
③ 必ず新しいブランチを切る
④ push先を意識する
⑤ PR経由でマージ

最終的にやること(テンプレ)

git switch master
git pull origin master
git switch -c new_branch
git add .
git commit -m "修正"
git push -u origin new_branch

まとめ(図で一発)

【NG】
master ★ → push → origin/master(即反映)

【OK】
master
  ↓
new_branch ★ → push → origin/new_branch
                     ↓
                     PR
                     ↓
                 origin/master

おわりに

今回のポイントはこれです👇

「今どのブランチにいるか」がすべて

これだけ意識すれば、

  • master直push事故
  • PRできない問題
  • ブランチ混乱

はほぼ防げます。


以上です。

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?