人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

SourceTreeについて質問です。
Gitでバージョン管理しているのですが、コミットしたファイルをFTPにアップロードする際に、上記ファイルのみを取得するにはどうすればよいでしょうか?
※これがわからないため、結局、全てのファイルをアップロードしないとならないので。。。

●質問者: makocan
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Sampo
●200ポイント ベストアンサー
git log --name-only --oneline -1

です。

しかし、開発がモダンなのにアップロードがFTPというミスマッチ…
いまどきだったらgit pushでアップロードしたいですよね。


makocanさんのコメント
す、すみません。ログの取得はできていたのですが、 ファイル自体を取得したいのです。 mergeディレクトリとか出来て、そこに差分と同様のディレクトリ構造でファイルも存在してくれれば、それをそのままFTPに投げれば良くなるので。。。

Sampoさんのコメント
上記のコマンドの結果をシェルスクリプトなりバッチファイルなりで加工するだけです。 Windowsですか?UNIX系ですか?

makocanさんのコメント
ありがとうございます。Windowsです。

Sampoさんのコメント
そしたら、該当ファイルを temp ディレクトリにコピーするには for /f /skip=1 %i in (`git log --neme-only --oneline -1`) do copy %i temp みたいにやればいいんじゃないでしょうか。

makocanさんのコメント
コマンドプロンプトでエラーでした。

Sampoさんのコメント
for /f "usebackq skip=1" %i in (`git log --name-only --oneline -1`) do copy %i temp これでどうかな?

Sampoさんのコメント
あー、パス区切り文字がスラッシュだからコピーコマンドがうまく動きませんね。 Git Shell 上でシェルスクリプトでやってもらった方がいいですか。

Sampoさんのコメント
Git Shell上でなら、 >|| for i in `git log --name-only --oneline -1 | tail -n +2`; do cp $i temp; done ||< こんな感じですかね。

Sampoさんのコメント
ディレクトリ構造をコピー先にも再現したければ >|| for i in `git log --name-only --oneline -1 | tail -n +2`; do cp -P $i temp/$i; done ||< こうなります。

makocanさんのコメント
ありがとうございました!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ