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

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

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

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

Q&A

解決済

4回答

356閲覧

gitでpushせずに担当者の変更したファイルの差分を確認したい

SeijiroKomatsu

総合スコア18

Git

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

0グッド

0クリップ

投稿2017/08/22 02:38

同じ職場なら、担当者のデスクに行って簡単にどこを変更したのかをgitで見れるのですが、
担当者がリモートの場合などで、担当者の変更ファイルとその差分をみたいときはgitで何かいい方法ありますでしょうか?
gitでpushしたソースをpullして確認はできますが、リリースしないかも前提の場合もありますし、確認している間に他の人がリリースしたい時もあります。その時じつはテストが足りてないソースがリリースされてしまうので、そういったケースを回避できる方法をお願いします。
以上です。

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

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

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

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

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

guest

回答4

0

ベストアンサー

別ブランチに push してもらうのが良いかと思います。通常、リリースは master ブランチやリリース専用のブランチで行い、開発は develop ブランチ(例です)で行います。

その他にも開発ではトピックブランチを作って機能修正などを行います。担当者の方に頃良いタイミングで定期的に git push して貰う様にルール付けされるのが良いと思います。

また VCS にはだいたい中央サーバで差分が表示できる機能が提供されています。GitHub Enterprise の様に高価な物もありますし、フリーな物も沢山あります。Git の標準機能としては GitWeb があります。

投稿2017/08/22 02:50

mattn

総合スコア5030

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

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

0

はじめに

こんにちは。
あかこうと申します。
よろしくお願いします。

解決法

今回僕が思いついた3つの方法を紹介したいとおもいます。

1. 一つブランチを作ってそこに投げる方法

これをやるためにはコミットしないといけませんし(作業単位のコミットにならない場合がある)、特定のブランチモデル等を使っているのであればネットワークも荒れるのであんまり理想的ではありませんが、 一番手っ取り早い方法です。

送信する側

shell

1git checkout -b workspace 2git add -A 3git commit -m "コミットメッセージ" 4git push --set-upstream origin workspace

受取側

shell

1git pull 2git checkout workspace

2. patchを作り、その結果をメール等で送る方法(diff/apply)

送信する側

1.以下のコマンドを使って、patchファイルを作成

shell

1git diff > hoge.patch

2.patchファイルをメールで送信

受取側

1.patchファイルをダウンロードしてリポジトリのディレクトリ内に置く
(別に自分でディレクトリ階層を叩き込めば、リポジトリのディレクトリ内に置く必要はない)

2.patchの適用

shell

1git apply hoge.patch

3. リポジトリを圧縮してメールで送る方法

リポジトリの大きさによっては、ダウンロード・アップロードともに大変ですし、gitを使っている意味がなくなってしまうのででおすすめしませんが、リポジトリまるごと圧縮してメールで送っても実現できると思います。

最後に

以上のような説明でよろしかったでしょうか?
何か質問があれば是非お願いします。答えられる限り答えたいと思います。

参考

訂正

1.の方法の持つ問題点ですが、これらを解決方法が存在するそうです。
(詳しくはここの回答の質問フォーム部にmattn様に書いて頂いています。)
となると、やはり一番有効な手段は1.の方法かと思います。

投稿2017/08/22 03:09

編集2017/08/22 04:32
akakou

総合スコア60

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

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

mattn

2017/08/22 03:12

もし 2 を薦められるのであれば git am について記述された方が良いかと。また一般的には1が取られる方法かと思いますが「理想的ではありません」と書かれた理由は何でしょうか?
akakou

2017/08/22 03:45

ご質問・ご意見、共にありがとうございます。 それらを参考にして回答を編集してみました。 (非常に勝手な前提ですが、)git flow等のブランチモデルに則って開発した場合、このようなブランチをい作成し、マージ等繰り返すと、ネットワークが非常に汚くなります。また、本来作業単位でするはずのコミットが作業途中でコミットされません。 これらの理由から「理想的ではない」と考えました。 もし間違い等あれば、ぜひご指摘ください。 よろしくお願いします。
mattn

2017/08/22 03:57

ありがとうございます。push できない様なやりかけのコードは diff を見たところでも結局よく分からないコードになるかと思いました。また git diff では新規のファイルは git add しないと出てきません。小まめにコミットしてサーバに push してしまう方が抜けも少なくなり正確かと思います。またコミット粒度が細かくないと後でマージに失敗してしまいます。 ネットワークが汚くなる、作業途中のコミットについては途中のコミットメッセージに [WIP] (work in progress) 等のプレフィックスを付けて貰い、レビュー前に squash して貰えば良いかと思います。
akakou

2017/08/22 04:17

返信ありがとうございます。 きれいなネットワークの保ち方の件ですが、とても勉強になります! 確かに今回の場合、branchを作ってpushする方が有効な手段かもしれません。 そこで、"一つブランチを作ってそこに投げる方法"のデメリット部を訂正しようと思います。 またdiff/applyを使った方法、zip化する方法に関しては選択肢の一つとしておいて置きたいと思います。
guest

0

考えたのですが、一回pushしてすぐに戻してpushするのが一番簡単な方法かなと思いますが、どうでしょうか?
質問がpushせずにって書いて前提を崩して申し訳ないですが。

投稿2017/08/25 02:44

SeijiroKomatsu

総合スコア18

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

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

0

担当者がローカルブランチで行った変更のdiffをpushせずに別のPCから見たいということでしょうか?

そうなるとこちら側から出来ることはありません。
ローカルブランチですので、そのPC内にしかそのブランチのデータは存在しません。
担当者のPCへリモート接続して見るくらいでしょうか・・・

担当者側からだと、差分ファイルだけ送ってもらうのがいいんですかね。
gitで差分ファイルを抽出する
こういうのがあったので、差分ファイルの抽出はそんなに難しくなさそうです。
ただgitを使ってる意味があんまり無いような気はしますが。

######追記
mattn様が書かれているように別ブランチにpushするのが一番ですね。
自分の回答は絶対にpushしないという前提ならという程度で見てください。

投稿2017/08/22 02:50

編集2017/08/22 02:53
chelsy7110

総合スコア596

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問