バックアップとして使用できるgitまたはmercurialで非表示のブランチを作成することはできますか?たとえば、未完成の作業(構文エラーが残っていることさえあるかもしれません)がありましたが、残された混乱について他人を悩ますことなく、オンラインでリポジトリにバックアップしたいと考えています。バックアップ用の専用のmercurial/gitブランチ?
答えて
これは実際にはSCMの目的ではありません。たぶんrsyncのようなものをサーバーにアップロードする方が良いアイデアでしょうか?
水銀でマージすると、のすべての変更セットがにマージされます。これらのコミットは「未完了の仕事を保存するだけです」というコミットを含みます。あなたがそれらを木に終わらせたくないならば、それらを託すことはありません。
私が知る限り、デフォルトの動作は同じで、それらを削除するためにコミット履歴を編集するのも面倒です。
したがって、rsyncはより良いオプションのように見えます。
リポジトリの2個のリモート・クローン持っていた場合は、これを実現できます。この機能を終了するまで不安定に
stable
unstable
プッシュ(バックアップ)を。機能が終了したら、ブランチを安定させてください。泡立ち、すすぎ、繰り返します。
TortoiseHgの最新バージョンは、shelve your changesです。一言で言えば
:
棚上げ変更は物理的にunshelveあなた までの作業ディレクトリから を削除しています。これは、 プロジェクトをビルドし、その上でテストを実行することができることを意味します。 変更がなくなりました。 をコミットする変更が であるかどうかをテストすることができるので、変更時に をビルド時に選択するよりも安全です。変更をシェルビング
はまた、あなたが 作っている、それは その他の変更のデバッグに干渉しないことを確認してください に、部分的に完了した作業を取り除く するのに便利です。
Gitでは、リポジトリを非常に簡単にミラーリングできます。
「バックアップ」と呼ばれるリモートのリポジトリがあるとします。リモートリポジトリを追加するときに、あなたの中に--mirror
を使用し、--mirror
を使用しなかった場合
- :、
git remote add --mirror backup server.com:/home/koen/backup_repo.git
は、次にバックアップするように簡単
など、いくつかのノートですプッシュコマンドgit push backup
- リモートリポジトリは「裸の」リポジトリにする必要があります(それを押し込んでいるので)
- チェックアウトレフリー/ヘッド/ *のデフォルト
git clone
とgit fetch/merge
のみダウンロード、参考文献によって--mirror
に関するgit push
とgit remote
ヘルプ。他の場所にプッシュするものは、明示的に質問したり、git clone --mirror
のような操作をしない限り、他の人にダウンロードされません。たとえば、次のようにすることができます。
git push origin HEAD:refs/koen/my_work
現在のコミットをプッシュします。その完全なrefspecを使用して、あなたはまた、別のチェックアウトからそれを引くことができます。
git pull origin refs/koen/my_work
は、あなたの頭を押して自動化するには、悩まずに、リモートにすべての枝をプッシュします
[remote "origin"]
url = [email protected]:pieter/gitx.git
push = :
push = refs/heads/*:refs/koen/*
ような何かを行うことができます他の誰か。また、これまで慣れ親しんでいたデフォルトのプッシュ動作を維持します。必要がない場合は、push = :
行を削除してください。
これは、リポジトリがどのように表示され、どのような権限を持っているかによります。原則として、あなたはちょうどあなたがハブのrepoにプッシュする "保存領域"として使用する一時的なブランチが必要---私はあなたがすでにそれを知っていると思う。ブランチに「不可視」とフラグを立てる一般的な方法はありますか?あなたはもう一方の端の奇妙な名前の参照文献にローカルのヘッド参照を押して実験ができるが、私は、例えば、そうは思わない:
git push central refs/heads/master:refs/remotes/tmp/master
これは、「レフリー/リモコンを/ tmp /マスター」を作成しようとしますこれは有効なリファレンスですが、通常ブランチと見なされるものではありません。例えば、gitwebは、refs/heads /の下のブランチの履歴に現れているが、すべてのリモート参照のリストを表示しない場合、そのようなrefを表示します。我々は複数のブランチを使用し、当社のmercurialのプロジェクトで)
を、
また、ちょうど弾丸をかむと、「おそらく壊れ利用・アット・ご-危険」と呼ばれる目に見えるブランチにプッシュします。デフォルトのブランチは "トランク"のようなものです。私がフィーチャーを始めるたびに、そこから分岐して開発する。私はコミットする、押す、別の場所に行く、プル、コミット、プッシュ。デフォルトのブランチはuntouchのままで、他のすべてのブランチはブランチを捕まえることはありません。私が終わったら、ブランチをデフォルトにマージします。 Gitのでは
、あなたは通常、それが作業ディレクトリを持っていることを意味プライベートリポジトリ、非裸を持っています。新しいコミットを作成し、パッチを適用し、他のリポジトリからプル/フェッチします。このリポジトリはプライベートマシン上でホストされています。
は、その後、あなたはそれが作業リポジトリを持っていないことを意味裸 公共リポジトリを、持っています。この公開リポジトリ(例: repo.or.cz、 GitHubまたは Gitoriousのようなgitホスティングサイトでホストされている場合があります)は、作業が安定したときにプライベートリポジトリからプッシュします。あなたはこの 公共出版リポジトリ(例えば、Gitのメンテナ、Junio C浜野ため、公共git.git
repositorisに機能ブランチをプッシュしていません)にご
プライベート開発リポジトリから枝だけ
サブセットをプッシュすることができます。この公開リポジトリは、他の人がフェッチする場所です。 この分離には、パブリックリポジトリにプッシュされないコミット(たとえば、 "git commit --amend"を使用)を修正できるという利点があります。それ以外の場合は、プライベート開発リポジトリにのみ存在する履歴の一部を書き換えます。これはプライベートではありませんが
、これは私が何をすべきかである(それは迷惑ではないですので、社内の誰もが、ちょうどないデフォルトでは、それらに得ることができます):〜/ .gitconfig
[alias] backup = !git push -v origin +refs/heads/*:refs/wip/`git config --get user.email`/*で
ので、その方法は、あなたの地元のレポの実行でいつでもできます。
git backup
(とにかくレフリー/頭の下に)あなたの地域の支店のすべては、引用文献の下に「起源」レポにプッシュされます/ wip/your_email/nameスペース、無条件(push -fと同じ)。
原点/マスターにプッシュする準備ができたら、これを使用して進行中の作業をバックアップすると、プッシュは非常に高速になります。ほとんどの(すべての)SHA1オブジェクトは既にオリジンサーバーで実行します。
オリジンリポジトリがガベージコレクションを行うために、バックアップをパージする必要があることに注意してください。参照:
git ls-remote origin refs/wip/`git config --get user.email`/*
バックアップにプッシュしたブランチのリストが表示されますので、何をクリーニングするかを自動化することができます。
共有リポジトリにプッシュするものは、普遍的に見える/利用可能になります。あなたの2つの単純なオプションは以下のとおりです。
は別の場所であなた自身の第二のリポジトリを作成し、毎日の終わりにそこにあなたの開発ブランチを押してください。あなたは開発ブランチを他の人が使っている安定したものにプッシュしません。
第2のリポジトリ全体を必要としないが、その日の終わりにあなたの作業に多くの時間を費やす2番目のオプションは、作業用のパッチをエクスポートすることです。標準のgit電子メールパッチメソッドは、そのパターンをバックアップする場合に備えて、すべてのコミットが維持されるようにします。パッチを圧縮し、どこかにアップロードしてください。
- 1. OKバックアップ専用にプッシュされたgit機能ブランチをリベースするには?
- 2. BitBucket/GitLab/GitHubのマージ専用ブランチ?
- 3. ブランチをバックアップする
- 4. Redis Cluster Slaveをバックアップ専用に設定する方法は?
- 5. Jenkinsは開発ブランチ専用にビルドします
- 6. コピー専用完全バックアップ以外の解決策がありますか?
- 7. バックアップ用のDockerボリューム
- 8. node_modules用の専用ディレクトリ
- 9. C#の専用ネットワークポート
- 10. リダイレクト専用のサブドメイン
- 11. カスタムページテンプレート専用のスタイルサイドバー
- 12. Chrome専用のスティッキーテーブルヘッダー
- 13. テスト専用のモデル
- 14. openam専用のインスタンスアーキテクチャ?
- 15. センター専用のテキスト
- 16. CouchDB 2のバックアップ用のシャードコピー
- 17. Emacsのdiredモード用の専用ウィンドウ?
- 18. iPad専用Settings.bundle?
- 19. バイナリデータストレージ専用データベース
- 20. iPad専用アプリケーション
- 21. ニュートラルリソース専用DLL
- 22. キャストアップキャスト専用キャスト
- 23. スイッチングウィンドウ専用サーバー
- 24. Jenkinsバックアップ用Jenkinsフリースタイルジョブ
- 25. WPFのTextBlock専用ウィンドウ
- 26. ファイル名のPython専用クラス
- 27. ユーザ専用のリンクdjango
- 28. iphone専用アプリのテスト
- 29. デスクトップ専用のjqueryスクリプト
- 30. IntelliJ IDEAの専用ライブラリフォルダ
これは、パーソナルブランチでの開発が一般的であり、普及している理由で、分散型VCSを大きくする理由の大半です。コミットする前に、本番ブランチに変更したり、見た目をどのように再構築したりマージしてから、必要な変更だけをプッシュすることができます。Rsyncは、この問題を処理するには不適切な選択です。 –