Help us understand the problem. What is going on with this article?

変更内容を"別ブランチに"反映させない方法

はじめに

git-flowやGitHub Flowを学習し始めると、ブランチを分けてファイルを管理するようになります。
そして、変更内容がなぜか別ブランチにも反映されるなんて珍事件を一度は経験すると思います。
それではブランチを分ける意味がなくなってしまいます。

この記事では、専門用語を解説したうえで、
変更内容を"別ブランチに"反映させない方法を解説していきます。

対象者

「変更内容がなぜか別ブランチにも反映されて困っている」
「とりあえずGitの勉強をしたい」

というGit初心者向けです。

この記事では変更内容を"別ブランチに"反映させない方法について説明しています。
そのため、Gitコマンドの仕組みなどについては詳しくは説明していません。
わからない人向けに参考サイトを用意しましのでご参照ください。
では、さっそく進めていきましょう!

専門用語

Git...どのファイルを追加したか削除したかなどを管理するツール。
GitHub...Gitと提携してみんなとやり取りができるWebサイト。
ブランチ...作業を枝分かれさせる事。
masterブランチ...完成品用のブランチ。
developブランチ...開発用のブランチ。
リポジトリ...ファイルやフォルダを保存する場所。
コミット...どのファイルを追加したか削除したかなどを登録する事。
スタッシュ...コミットせずファイルを一時待避する事。

環境

OS: macOS Catelina (バージョン10.15.4)
ターミナル: Terminal.app
git version: 2.24.2

1.原因

変更内容をコミットまたはスタッシュしないで
別ブランチに移動した場合、
移動先の別ブランチにも同じ内容が反映されます。

コミットするかスタッシュして、別ブランチに反映させないようにしましょう。
スタッシュは、とあるブランチで作業中だけど別のブランチで他のことがやりたい
但し、作業が中途半端だからコミットはしたくない場合に使用します。
コミットする場合は2-1へ。
スタッシュする場合は2-2へ。

2.対処法

Gitコマンドの仕組みはこちらの記事が参考になります。
Gitでよく使うコマンド一覧

2-1.コミットする場合

コミットしたい物を全て選択するには下記Gitコマンドを入力します。

git add .

コミットするには下記Gitコマンドを入力します。
xxxにはコミットのメッセージを入力します。

git commit -m "xxx"

GitHubのリポジトリに反映するには下記Gitコマンドを入力します。
xxxにはブランチ名を入力します。

git push origin xxx

コミット後に別ブランチを移動しましょう。
ブランチを移動するには下記Gitコマンドを入力します。
xxxには移動先のブランチ名を入力します。

git switch xxx

これで完了です。

2-2.スタッシュする場合

スタッシュするには下記Gitコマンドを入力します。

git stash

スタッシュ後に別ブランチを移動しましょう。
別のブランチでの作業が終わったら、
元のブランチに移動しましょう。
ブランチを移動するには下記Gitコマンドを入力します。
xxxには移動先のブランチ名を入力します。

git switch xxx

退避した変更内容を戻しましょう。
まずは、退避した作業の一覧を確認しましょう。
確認するには下記Gitコマンドを入力します。

git stash list

下記のような表示が出てきます。
xxxは変更作業を行なったブランチ名です。

stash@{0}: WIP on xxx
stash@{1}: WIP on xxx
.
.
.
stash@{5}: WIP on xxx

退避した作業を戻すには下記Gitコマンドを入力します。
例)stashの0番を戻すときはxxxには0を入力して下さい。
例)stashの5番を戻すときはxxxには5を入力して下さい。

git stash apply stash@{xxx}

これで完了です。

おわりに

お疲れ様でした!

これでこの問題を対処できるようになりましたね。

この記事をきっかけに、より良いGit生活が送れていただければ嬉しいです!

参考


Sakuya_wd
Web系の就職先を探しています。 HTML / CSS / JavaScript / jQuery
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした