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

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

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

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

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Q&A

1回答

6520閲覧

作業途中のブランチにpull

退会済みユーザー

退会済みユーザー

総合スコア0

Git

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

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

0グッド

0クリップ

投稿2021/08/04 17:32

編集2021/08/04 17:34

前提・実現したいこと

実現したいこと

現在作業中のブランチに、私のコードはそのままで他の人が書いたコードを取り込みたい。

前提、疑問

gitの初心者です。

feature/user(仮名)をクローンして、feature/user/registというブランチ名で切ってここで作業してます。

feature/userをクローンしてブランチを切って作業してる人は他にもいます。
他の人は作業を終えてfeature/userにpush、マージしました。

更新されたfeature/userを、私のfeature/user/registに、「私の書き途中のコードはそのままで更新された分だけ取り込みたい」のですが、このままfeature/user/registで作業中にpullしてもよいのでしょうか?

それとも、feature/userにcheckoutしてpullし、そこから新たにブランチを切って作業していくことになるのでしょうか?

試したこと

書き途中のコードが消えたら困るので何も試せてないです。

補足情報(FW/ツールのバージョンなど)

GitHub

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

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

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

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

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

hoshi-takanori

2021/08/04 17:51

今までの作業内容をいったん feature/user/regist にコミットして、feature/user を最新の状態にした上で feature/user から feature/user/regist にマージすれば良いのでは。
guest

回答1

0

チームで開発していたらよくある事ですね。
2通りを提案します。

  • git stashで作業中のファイルを退避させるルート
  • 一度git commitでコミットしてしまうルート

git stashを使ったルートはこうなります。

bash

1# 亜空間に保存して貰う 2$ git stash 3 4# masterのコミット履歴をリモートリポジトリまで進める 5$ git checkout master 6$ git pull origin master 7 8# 作業中のブランチに戻ってくる 9$ git checkout feature-branch 10 11# masterブランチの修正内容を取り込む 12# margeを使うと修正内容を混ぜるのでコミット履歴既にあると混ざって微妙な感じになる為 13$ git rebase master 14 15# 亜空間に保存した修正内容を取り出して再適用 16$ git stash pop

注意点としてはrebase後に
git stash popで取り出す時にコンフリクトしていたケースで
失敗すると修正内容が消し飛ぶ悲劇が可能性があります。


git commitでコミットしてしまうルートはこうなります。

bash

1$ git add ファイル名 2$ git commit -m "tmp" 3 4# masterのコミット履歴をリモートリポジトリまで進める 5$ git checkout master 6$ git pull origin master 7 8# 作業中のブランチに戻ってきて適用 9$ git checkout feature-branch 10$ git rebase master 11 12# 普通に作業を進める 13 14# 1個前のtmpコミットを上書きする形で修正 15$ git add ファイル名 16$ git commit --amend -m "何とか機能の実装"

注意点としてはtmpコミットが混ざった状態でプルリクエストを出さないようにしましょう。
rebase完了時点ですぐgit reset等を使ってtmpコミットを消しても良いと思います。

投稿2021/08/05 05:27

miyabi-sun

総合スコア21203

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問