質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
SourceTree

SourceTreeは、Gitのクライアントツール。視覚的に操作するGUI形式でGitの操作が容易になります。MacやWindowsなどのOSに依存しておらず、PC環境に合わせてインストールすることが可能です。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Q&A

1回答

4790閲覧

developブランチに変更があった場合、それを作業ブランチに反映する方法

momolength

総合スコア62

SourceTree

SourceTreeは、Gitのクライアントツール。視覚的に操作するGUI形式でGitの操作が容易になります。MacやWindowsなどのOSに依存しておらず、PC環境に合わせてインストールすることが可能です。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

0グッド

0クリップ

投稿2021/08/01 23:41

編集2021/08/02 00:17

※gitですが操作はsoucetreeを使っています。

develop(派生元)
作業ブランチ(派生先)

作業ブランチで作業をしていてる最中にdevelopに他の方の作業が反映されていてプルできる状態だった場合、それを作業ブランチに反映させるにはどういった手順が必要ですか?

1作業ブランチにてスタッシュする。
2developでプルする
3作業ブランチに戻って、スタッシュを戻し競合を解消する。

で合っていますか?
どうするのが適切ですか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

momolength

2021/08/02 08:38

1作業ブランチにてスタッシュする。 2developでプルする 3作業ブランチに戻って、スタッシュを戻し ここまでしました。 後はdevelopをマージすればいいんですかね?
hoshi-takanori

2021/08/02 08:44

作業ブランチにコミットしてない変更があるとたぶんマージに失敗するので、スタッシュ (またはコミットできるものばコミット) してからマージするのが良いと思います。
momolength

2021/08/02 09:04

やってみます。 結果的にdevelopに作業ブランチをマージしますが...なんかあっちこっちしてややこいですね。
hoshi-takanori

2021/08/02 09:20

そうですね。でも、develop にマージする前に他の人にレビューしてもらって、マージ自体も github 上でプルリク作って行ったりしますよね…。
momolength

2021/08/02 09:23 編集

今回はそこを省くという謎指令が出たため、不安で質問した次第です。 この後一旦作業ブランチにdevelopをマージするので、その時点でその不安は解消されるはずですw 自己解決でもいいですが、気持ち悪いんでよければ回答としてまとめてあげていただけないですか。
guest

回答1

0

作業フローの取り決めにもよりますが、一般的にはいったん develop を作業ブランチにマージして、衝突を解消した上で動作確認する (その後 github 上でプルリクを作ってレビューしてもらって develop にマージ) ということになると思います。

SourceTree での操作はよく分かりませんが、基本的には

  1. 作業ブランチの内容をスタッシュまたはコミット
  2. develop に切り替えて、リモートの develop をローカルの develop にプル
  3. 作業ブランチに戻して、develop をマージ (衝突があればそれを解消してコミット)
  4. スタッシュしたものがあればそれを戻す (衝突があればそれを解消)
  5. develop の変更を取り込んだことによって問題が発生してないことを確認
  6. (プルリクを作らない場合) develop に切り替えて、作業ブランチを develop にマージして、develop をプッシュ

って感じの流れでしょうか。

投稿2021/08/02 09:40

編集2021/08/02 10:05
hoshi-takanori

総合スコア7895

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

momolength

2021/08/02 09:54 編集

最後にすいません。 3番を行った後、プッシュはどのタイミングですべきですか? プッシュってコミットやマージをしたらもうすぐにした方がいいですよね。つまり、今回はマージした後にプッシュ、その後4番へという認識であってますか?
hoshi-takanori

2021/08/02 09:55

3 の後は develop に変化はなく、作業ブランチが (develop を取り込んだことにより) 変更されますが、作業ブランチのプッシュをいつ行うかはそれこそ作業フローの取り決めによるでしょうね。 プルリクを使わずに手元で作業ブランチを develop にマージして develop をプッシュする、という話なら、5 の後に行うことになるかと。
momolength

2021/08/02 10:02

1.5の後に、プッシュ 2.問題なければ作業分をコミット 3.developに移り、作業ブランチをマージ ですね。
hoshi-takanori

2021/08/02 10:06

そうですね。(手元で develop に作業ブランチをマージする場合、そもそも作業ブランチをプッシュする必要はない、という考え方もありますが…。)
momolength

2021/08/02 10:08

>develop に切り替えて、作業ブランチを develop にマージして、develop をプッシュ これでもいいんですね。2度プッシュすることになるのでこっちでもいいですが流れがわかりやすい(プッシュの数は増えるが)ので、上記のやり方でやってみます!
momolength

2021/08/02 10:17 編集

! [rejected] develop -> develop (fetch first) error: failed to push some refs to '**********.git' hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first integrate the remote changes hint: (e.g., 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. developに作業ブランチをマージした後プッシュしようと思ったら、こんなのが出てしまいました...;; わかりますか?
momolength

2021/08/02 10:27

プッシュ先はリモートのdevelopと作業ブランチを指定しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問