🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Git

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

2回答

923閲覧

iMacとMacBookなど複数端末で開発する場合のソースファイルの共有

退会済みユーザー

退会済みユーザー

総合スコア0

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Git

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

2グッド

1クリップ

投稿2020/12/22 05:48

編集2020/12/22 06:31

前提・実現したいこと

iMacやMacBookなど複数の端末で開発をしている方へ質問です。
複数の端末で開発をしたい場合に開発に必要なファイルの共有はどのように行なっていますか?
私の場合ですと、基本はiMacで開発作業をしていますが、たまに出先や書斎とは別の部屋で作業したい時にMacBookProを使いますがその際のファイルのやりとりはUSBメモリなどを使っています。

できればシームレスに行いたいのですがnpmパッケージ系の開発となるとnode_modules配下を除外したり、動悸漏れがないかチェックしたりとなかなか大変そうで、一番確実なUSBメモリでの共有をしています。

もっと上手いやり方をご存知の方がいましたら教えてください。

(gitで一時的にリモートにプッシュするのという手もありますが、なんとなくcommit履歴を汚しそうで、整理が大変そうだなということで敬遠しております。)

私としてはWindowsは使っていないので、OS X限定の手法でも構いません。

補足

gitいいじゃんってしつこい方いたのでgit以外の方法でご存知の方がいらっしゃればご教授願いたいです。
gitに関してはもう十分ご意見いただきました笑

退会済みユーザー👍を押しています

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

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

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

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

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

Zuishin

2020/12/22 07:39

Dropbox を使わないのはなぜですか?
退会済みユーザー

退会済みユーザー

2020/12/22 13:41

OneDriveを一時期利用していましたが、node_modulesなど同期したくないのに同じディレクトリ内と言うことで同期対象にされ、それらが大量すぎて本当に同期して欲しいファイルが未同期だったりと管理が大変でした。Dropboxではそのような課題は回避できますか?
Zuishin

2020/12/22 14:07

その手の情報を後出しにするのではなく全部書いたらどうでしょうか。 同期してほしいディレクトリとしてほしくないディレクトリが混在しているというのは単にディレクトリ設計を間違えているだけなので上司に相談してください。USB でどうにかなっているというのも意味不明です。どうしようもないなら、同期してほしいディレクトリのみを DropBox や OneDrive の特定のフォルダとハードリンクすることで対応できますが、それこそ USB を使う現状の方法より少しマシな程度に汚いと思います。 Git なら、ブランチを切って適当にコミットしたものを後で整理してマージする方法できれいなコミットログが作れます。
退会済みユーザー

退会済みユーザー

2020/12/22 22:38

npmパッケージでの開発をしたことがあればわかると思いますが、これはよくぶち当たる問題ですよ。 またGitですか。一度commitしてリモートにあげてしまうと変更も追いづらくないですか?あれ?どこまで修正したっけというときに毎回ログから差分を見ないといけません。commitしていなければ、ローカルでVS Codeなどエディタなどを使えば一目でどこまで修正してるのかも分かりますよね。 こういったものが後出しになってしまい申し訳ないですが、みなさんも自分と対して変わらないことがわかりました。
Zuishin

2020/12/22 23:32 編集

多分あなたが使いこなしていないだけです。私達が何を言ってるかもわからないでしょう?
退会済みユーザー

退会済みユーザー

2020/12/22 23:32

あ、そうですか。どうもです。
退会済みユーザー

退会済みユーザー

2020/12/22 23:34

たかが自端末間のファイル共有そこまでのステップが必要になることに疑問を持たない人たちは怠慢だと思いますがね。
Zuishin

2020/12/22 23:35

そのステップとやらが何を指しているのかわかりませんが、USB を使う方がよほど面倒です。
退会済みユーザー

退会済みユーザー

2020/12/23 00:34

git使ったことありますか? commitする、プッシュする、pullする、commit履歴から今まで修正した箇所を確認、最終的にcommitログを綺麗にする作業、これらが必要ですよね。USBメモリの方が面倒な理由はなんですか?
Zuishin

2020/12/23 01:20 編集

最終的にというか、別のリポジトリで行うのなら当然のもので、面倒ならスクリプトを作ればいいだけです。今まで修正した箇所を確認というのは意味が分かりません。なんでそんな無駄なことをするんですか? 私の知ってる Git と違う気がしますが、本当に使ったことありますか? 逆に USB で現在 node_modules をどうやって扱ってるんですかね? Dropbox が使えないほど滅茶苦茶なディレクトリ構成になってるんでしょ?
Zuishin

2020/12/23 01:23 編集

あなたの自己解決回答にこれだけ低評価がついているのは、面倒だからコメントしてないだけで「何言ってんだこいつ、開発したことあるのか」と思ってる人が多いからだと思いますよ。ものすごく無駄な動きが多そうです。
退会済みユーザー

退会済みユーザー

2020/12/23 01:40

いや、みんな無駄なことに時間かけてえらいなーとしか思えなかったですね笑 たいした開発したことないんだろなこいつらと笑
退会済みユーザー

退会済みユーザー

2020/12/23 01:42

USBメモリでコピーする際はnode_modulesなど、.gitignoreで定義したものを除外してコピーする、ほかのプロジェクトでも共通で使えるスクリプトを組んでそれをつかっていますね。
Zuishin

2020/12/23 01:44

無駄なことに時間をかけて偉いですね。Git の使い方を勉強したほうがはるかに有意義だと思いますが、凝り固まった人に何を言っても無駄でしょうからどうぞ自分の道を進んでください。
退会済みユーザー

退会済みユーザー

2020/12/23 01:46

Gitの使い方知らない人に煽られても...笑
Zuishin

2020/12/23 01:50

いや、あなたが便利な使い方を知らないだけでしょ?
退会済みユーザー

退会済みユーザー

2020/12/23 01:58

Gitってそもそも端末間のファイル共有をするためのものではないので、そういった使い方をしようとすると手数増えますし、さっき言ったように作業途中だと変更箇所が追いにくくなります。それならばコミットせずにそっくりそのまま他の端末にその状態ごとコピーした方が、未ステージのファイルからそのファイルの変更箇所も一目でわかります。それだけの話です。わからないですかね?
Zuishin

2020/12/23 01:59

端末間のソースを共有するためのものですが? 本当に知ってますか?
Zuishin

2020/12/23 02:00 編集

あと変更箇所を追いにくいのはあなたのやり方が間違っているからです。だからちゃんとしたやり方を勉強しろということで。
退会済みユーザー

退会済みユーザー

2020/12/23 02:06

私の理想を言うと、.gitignoreで除外している、バージョン管理対象外以外のファイルをそのまま共有フォルダのなど、何かしらの手法で同期対象としてリアルタイムで他の端末にマウントして使えたらいいなと思ってます。DropboxやOneDrive,iCloudなどもいいですが、タイムラグや除外設定ができなかったりいろいろ大変ですし、それなら皆さんが仰るとおりまだGitを使った方がいいと思います。ただ、それでも端末間の共有をしたいだけなのにGitを使ってしまうと、どこまで修正したのかが追いにくくなりますし、作業途中の修正履歴をおう手数やコミットログをきれいにする手数が増えます。少しでも楽をしたい、楽をするために成長してきた業界なので、既存であるものだけを使うのもいいですが、自分たちで何かそう言った仕組みを考えていったり、改善したりすることは大事なんじゃないかなと個人的に思います。
退会済みユーザー

退会済みユーザー

2020/12/23 02:10 編集

Gitは端末間というより、他人とソースコードを共有し、バージョンなどを管理していくものだと思っています。その分、単に端末間で共有したいだけなら、無駄な工程が含まれてしまいますよね。もっとシンプルに考えていけば、何もGitを経由する必要なんてないんじゃないかなと思った次第です。
Zuishin

2020/12/23 02:09

他人だけではありません。一人で使っている人もたくさんいます。その他の言葉を見てもわかりますが、要するにあなたが全く使い方をわかっていないというだけなので、使い方を学べばそれで終わる話です。
Zuishin

2020/12/23 02:11

繰り返しますが、どこまで修正したのかわからないのは、単に使い方が下手なだけです。
退会済みユーザー

退会済みユーザー

2020/12/23 02:14 編集

一人で使っている人ももちろん知ってますし、その使い方を否定する気持ちもないです。もちろんそれで十分使えることも理解しています。「ただし」それは端末間で共有するために使っているわけではないですよね?バージョン管理をしたり、ソースコードの置き場所として使っているのではないでしょうか。 私ももちろんそう言った目的ではgitを利用しています。「しかし」私の今回のニーズは自端末間でのソースコードの共有であることにフォーカスして考えています。そう言った時にgitよりももっと便利なものがないのか、あるいはどうしたら便利になるのか、考えてはいけませんか?
Zuishin

2020/12/23 02:16

いいえ、端末間で共有するのは Git の大きな役目の一つです。あなたが知らないだけです。
Zuishin

2020/12/23 02:16

「分散型」が何を意味するのか少し調べてみたらどうでしょうか。
Zuishin

2020/12/23 02:35

簡単にできることをわざわざ難しくしてこだわっているのはあなたでしょう。 すでに書きましたが、凝り固まっている人には理解できないでしょうから自由にどうぞ。しかし、それが世間一般に受け入れられる考えでないことは低評価の山を見てわかったんじゃないかと思いますが、目をつぶって我を通すのもあなたの自由です。
退会済みユーザー

退会済みユーザー

2020/12/23 02:39

既存にあるものを使うことしか考えない人たちですよね。十分理解しています。ありがとうございました!
Zuishin

2020/12/23 02:40

既存にあるものを使いこなせる人たちです。単にあなたが使えてないだけなので。
quickquip

2020/12/24 05:34

だいたいの人が"普通にgitだろ"と思っちゃうし、 > それは端末間で共有するために使っているわけではないですよね? も"いや端末間で共有するために使ってるだろ"と思っちゃいますよねぇ。 まぁいいんですけど。
Zuishin

2020/12/25 00:03 編集

一応、USB メモリの代わりに Dropbox を使う方法を書いておきましょうか。 まず、プロジェクトディレクトリのルート直下に node_modules を置きます。 そして同じくプロジェクトディレクトリ直下に src というディレクトリを作り、この中にソースファイルをすべて置きます。同期するのは src 以下のみです。成果物など同期したくないものは src の外に置きます。 src のハードリンクを Dropbox の管理するフォルダに作ります。ハードリンクは sudo ln -d で作れるので、詳しくは ln コマンドについて調べてください。 これでスクリプトなど走らせなくても src 内のファイルの変化はすべて Dropbox 管理下のディレクトリと自動的に同期します。厳密には同期というより同じディレクトリが二か所にあります。 もう一つの端末で同様に src のみ Dropbox に管理させるプロジェクトディレクトリを作れば USB を抜き差ししたりスクリプトを走らせたりという前時代的なことをしなくてもネットにつなぐだけでファイルが同期します。昭和から平成前期の懐かしいやり方をいつまでも引きずってないで、そろそろ文明人になりましょう。
guest

回答2

0

Gitを使えばいいのでは。
個人でやってるのに履歴を汚すというのは意味不明ですよ

投稿2020/12/22 05:50

y_waiwai

総合スコア88038

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

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

退会済みユーザー

退会済みユーザー

2020/12/22 05:53

個人ではないです。業務でやってます。 リモートに上げた時点でコミットログ残るじゃないですか。中途半端なログ残したくないと言っているだけなのであなたこそ意味不明な回答をよこさないでいただきたいです。
y_waiwai

2020/12/22 05:54

なら質問にそう書いておきましょう。 後付けでどーこー言われてもどーしよーもありませんぜw
退会済みユーザー

退会済みユーザー

2020/12/22 05:58

書いてますやん。。。
y_waiwai

2020/12/22 06:02

> 個人ではないです。業務でやってます。 > 中途半端なログ残したくないと どこに書いてます?
退会済みユーザー

退会済みユーザー

2020/12/22 06:11

(gitで一時的にリモートにプッシュするのという手もありますが、なんとなくcommit履歴を汚しそうで、整理が大変そうだなということで敬遠しております。) こう書いてまさかそんな回答来るとは思いませんでした。 個人だろうと業務だろうと関係ありますか?コミットログ汚したくない。だから敬遠してる。こんなにはっきり書いて伝わらないとなると、これ以上コミュニケーションをとっても意味がなさそうです。 なのでこれ以上コメント頂かなくて大丈夫です。お手数おかけしました。
y_waiwai

2020/12/22 06:14

返答に窮して逃走宣言ですか。 回答を聞く気がないなら、こんなところで質問しないようにしようねw
退会済みユーザー

退会済みユーザー

2020/12/22 06:24

しつこっw
dodox86

2020/12/22 06:49

尚、中途半端なコミット履歴はpush前のrebaseで整理することができます。
退会済みユーザー

退会済みユーザー

2020/12/22 06:52

dodox86さん もちろん存じ上げておりますが、例えばiMacで作業している途中でMBPで作業したくなったとします。その場合その途中の物を保存してプッシュしないとMBPでpullできないですよね。つまりなんの意味の塊でもないコミットをリモートに上げることになります。これは汚い以外の何者でもないのでやりたくないと申し上げております。 ご意見ありがとうございます。
guest

0

ベストアンサー

みなさん意外とそう言う需要ないんですねー。
そういうローカルネットワーク内でソースコードの入ったプロジェクトに必要なファイルを共有、同期できるアプリケーションを作ってみようと思います。

投稿2020/12/22 06:09

編集2020/12/22 22:33
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2020/12/23 01:50

.gitignoreを解釈した共有フォルダをそれぞれの端末でマウントして使えたら便利そうですね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問