ローカルリポジトリで単独で作業している場合、なぜプッシュする必要があるのですか?


21

私はGitHub for Windowsを介し Gitと対話していますが、これはリポジトリをGitHubにプッシュすることは決してないので面白いです。私はそれだけで取り組んでおり、私だけが使用することを意図しています。コミットが「非同期コミット」の下にリストされ、「履歴」の下に「コミットなし」と表示されていることに気付きました。「履歴」の下にリストされているコミットを除いてプッシュすることで何を達成できますか?


14
指摘する価値のある質問には、1つの重要な理解不足があります。リモートで何かをプッシュしていない場合、すべての作業はローカルのオンディスクリポジトリにあります。マシンを失い、今までしてきたすべてを失います。
ラースヴィクランド

回答:


40

あなたは技術的に正しいです-コードを誰とも共有していない場合、プッシュする必要はありません。

この場合も、ラップトップには最低価格の入札者が作成したハードドライブがあります。ハードドライブが故障する前に家が焼損する可能性があります。コードをリモートで確認することもできます。または、誰かと共有することもできます。

現在、Githubでは、すべてがパブリックであるか、プライベートリポジトリの料金を支払う必要があります。あなたが自分でそれを保持したいのであれば、あなたはgitを可能にするだけでなく、無料のプライベートリポジトリを備えたbitbucketをチェックアウトしたいかもしれません。

別のオプションは、リモートでバックアップされるgitリポジトリをどこかに保存することです。しかし、最近クラウドSCMプロバイダーを使用するだけでなく、これを行う利点はほとんどありません。


BitBucketは、ほぼ無制限の数のプライベートリポジトリを無料で提供しています。

プッシュする理由はたくさんあります。ワークフローは実際にはそれほど変化しません。コミット、コミット、コミット、ワークフローの完了、プッシュを実行します
リグ

7

リポジトリにプッシュする別の理由があります(何らかの方法でローカルであっても):ワークステーション

私はあなたのことは知りませんが、4台の異なるコンピューター(自宅に1台のPC、1台のラップトップ、1台のOffice PC、1台のOfficeノートパソコン)で作業しており、会社のサーバーで適切にセットアップされたGitサーバーに変更をプッシュすると、同期が高速になり、無痛。GitはDVCSであるため、その利点を活用しています。バックアップだけでなく、作業中のさまざまなコードベースをすべて簡単にマージ、チェック、分析できます。

たとえば、自宅のPCが「サーバー」(またはオリジン)であり、自宅のラップトップを持っている場合は、ローカルにすることができます。そうすれば、簡単に同期を保つことができます。

サイドノート:「Dropbox(またはその他の同期サービス)を使用したい」とよく言われます。Gitリポジトリには大量のオブジェクトがあるため、そのようなDropboxを使用するのはばかげています。それはオプションですが、良いものとは言いません。


+1、私はあなたの場合も間違いなく同じことをします。自宅でプッシュするのを忘れて、今仕事中の場合はどうしますか
モシェレバ

2
@Zippoxer別のタスクに焦点を合わせ、後でマージします。
バイトバスター

まさに、@ bytebusterが言ったこと。それがDVCSの美しさです!(とはいえ、十分な練習を積めば、二度と忘れられません!)
AeroCross

また:側/趣味のプロジェクトの作業は、新しいアイデアなど:-)リラックスしたり、探求する
ヨハネス・

6

分散SCMとして、gitは「作業コピーのスナップショットを作成する」(コミット)と「リポジトリを同期する」(プッシュ/プル/フェッチ)の概念を区別します。

リポジトリのローカルクローンが1つしかない場合、プッシュする意味はありません。しかし、githubのを、あなたが行う他のクローン(githubの上の1)を持っているし、変更をプッシュすると、少なくとも一つの利点があります:バックアップを。コンピューターが停止した場合でも、これまでのところすべてがgithubにプッシュされています。

もちろん、それはgithubの主な目的ではありません。githubはコードの共有を目的としているため、プロジェクトがgithubにある場合、他のユーザーがそこからプルしたり、プロジェクトのクローンを作成したり、クローンからのプルリクエストに対応したり、信頼できる人にリポジトリへのプッシュアクセスを許可したりすることもできます。

プッシュするもう1つの理由は、複数のローカルクローンを使用する場合です。これはさまざまなことに役立ちます。たとえば、2つの異なるブランチで同時に作業したい場合や、リポジトリで破壊的な操作を試してみたい場合などです。すべてが意図したとおりに機能する場合、変更されたクローンを保持します(または変更を元のリポジトリにプッシュします)が、事態が南に行けば、めちゃくちゃになったクローンを削除して元のクローンに戻すことができます(変更されていません) 。

デプロイメントにgitを使用する人もいます。実動バージョンもgitリポジトリであり、新しいバージョンへの更新はフェッチとチェックアウトの問題です(明らかに、ビルドステップが必要ない場合にのみ機能します)。真剣なものには必ずしもお勧めしませんが、小さなものにはシンプルで実用的なソリューションです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.