1
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?

More than 3 years have passed since last update.

【Git】mainブランチに直接pushしない時のgitの流れ

Last updated at Posted at 2021-07-03

※自分用の備忘録です。

#作業時
mainブランチから作業ブランチを切る。

git checkout -b feature1

作業毎に

git add -A
git commit -m "○○追加"
git push origin feature1

#mainブランチへマージする。
Github上でプルリクエスト作成。
プルリクエストにOKが出たら、マージの前に作業コミットをまとめる。

まずコミットの内容を確認。

git log --oneline
git rebase -i <HEAD>

をして、pickをsに変更する。
Gitの複数コミットをrebaseとsquashでまとめる方法

リモートへpushする。

git push origin feature1 -f

なぜrebase後に強制プッシュをする必要があるのか

Github上でマージボタンを押す。
mainブランチへのマージ完了🙆‍♀️

#次の作業に進む。
ローカルでfeature1ブランチにいるので、mainブランチに戻る。
mainブランチをリモートに合わせる。

git fetch origin

上記で、リモートの最新情報をローカルリポジトリに取得。(↑これだけではワークツリーには反映されない。)

git merge origin/main

上記で変更をワークツリーに反映。

#feature1にいる状態でfeature2ブランチを切って作業を進めてしまい、mainブランチからfeature2ブランチを切り直したい場合
(ちなみにfeature2でパッケージのインストールなどしてしまった...)

feature1ブランチに戻る。

git checkout feature1

mainブランチに戻る。

git checkout main

↑これでエラー出る。

error: Your local changes to the following files would be overwritten by checkout:
        <ファイル名>
        <ファイル名>
Please commit your changes or stash them before you switch branches.
Aborting

とりあえずfeature2ブランチを消してみた。(これやった後もエラー出るのでしない方がいいかも。)

git branch -D feature2

Gitでローカルブランチを削除する

git checkout main

上記と同じエラーが出る。

そこで...

git stash

をしてみると

Saved working directory and index state WIP on feature1〜(省略)

と返ってきて、
git checkout mainができた!

【Git】checkout時に、「error: Your local changes to the following files would be overwritten by checkout: 」と表示された時の対処方法
【git stash】コミットはせずに変更を退避したいとき

1
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
1
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?