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

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

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

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

Q&A

解決済

3回答

20734閲覧

SourceTreeで別ブランチの特定のファイルを現在のブランチのファイルと差し替えたい

OROCHI_TUNGUS

総合スコア31

Git

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

0グッド

0クリップ

投稿2015/05/22 03:25

こんにちは。現在SourceTreeを使っていて以下の状況であるとします
ブランチA
File1
File2

ブランチB
File1
File2

ここでブランチAのFile2だけをブランチBのFile2と同じにしたい場合、どのような操作を行えばよいでしょうか?

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

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

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

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

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

guest

回答3

0

備忘録がてら回答させていただきます。(というか解決済みでもコメントできるのかな?)

  1. SourseTree右上の、 端末 をクリックするとターミナルが開きます。(ディレクトリは現在のローカルリポジトリに自動でなっています)
  2. git checkout {欲しいファイルのあるブランチ名} {欲しいファイルのパス} を入力してEnterするだけ。

欲しいファイルのパスは、それが変更されている適当なコミットでそのファイルを探して、右クリッククリップボードへのパスをコピー(日本語としておかしいけど)でコピーできるので、command + vでペーストすれば楽かと。

これで別ブランチから取ってきたファイルがローカルに反映され、ステージングされた状態になります。
当たり前かもしれませんが勝手にコミットされたりしないので履歴を汚染しません。

SourseTree使いの者としては、ターミナルでgit操作に抵抗があるのが共通認識かと勝手に思っていますが、多少の機能だけなら案外簡単なもので、ぜひコレやってみていただければと思います。

投稿2020/07/30 06:48

1000

総合スコア204

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

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

0

ベストアンサー

ブランチBをアクティブにした状態で、
ブランチAのFile2のコミットを選択、右クリックして「チェリーピック」するのはいかがでしょう。

ただこれはファイル取り込み(差し替え)だけでなくブランチBのコミット履歴もアップデートされてしまいますので「履歴はええねん、ファイルだけ欲しいねん」ってケースでは不向きかも知れません。

投稿2015/05/30 02:56

bardiche

総合スコア15

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

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

OROCHI_TUNGUS

2015/06/08 02:18

一番確実そうですね、ありがとうございます。 ファイルだけほしい場合はElsterrierさんの方法を使うのがよさそうです。ありがとうございました
guest

0

邪道かも知れませんが…作業PCにクローンやローカルリポジトリがあるのであれば、

1.ブランチBにする
2.File2をローカル環境にコピー
3.ブランチAにする
4.File2上書き

これでどうでしょうか。

投稿2015/05/22 03:40

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

OROCHI_TUNGUS

2015/05/22 04:34

ご回答ありがとうございます まさに今その方法でやっているのですが、どうにも面倒なので手っ取り早くやる方法をさがしております
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問