リポジトリにアクセスできないオフラインマシンで作業する必要があります。今では、Gitの使用を完全に見逃したくありません。
質問:
編集:私は、私のためにコピーを行う管理者にメモリースティックを渡す必要がある、つまり、ユーザーと一緒にスティックをマウントできないことを述べるべきでした。
完全なGitリポジトリをコピーするには、フォルダ.git
;をコピーする必要があります。それはすべてを含んでいます。 Gitは安全なファイル名を使用し、リポジトリ内のタイムスタンプを無視するため、このデータは通常のファイルシステムの癖から安全です。
ターゲットマシンでフォルダを作成し、その中の.git
フォルダをコピーします。これで、git checkout <branch>
が作業コピーを取得します。
レポ全体ではなくパッチを前後に移動したい場合は、git format-patch <branch>
がパッチを作成します。このコマンドは、リモートリポジトリを更新するために必要なすべてのパッチを作成します(つまり、出力にはまだプッシュされていないすべてのものが含まれます)。コミットID(=このコミットで開始)または範囲を指定することもできます。
それらを適用するには、リモートリポジトリでgit am < 0001....
を使用します。
関連:
リポジトリをメモリースティックにコピーするには、git clone
を使用してから、git pull
を使用して更新します。
たとえば、メモリースティックを取り付けたオンラインコンピュータで、
cd <memory-stick-mount-point>
git clone <local-path-to-git-repo>
これで、<local-path-to-git-repo>
がUSBスティックのリポジトリのOrigin
リモートになるため、後でgit Push/pull
(オンラインマシンにマウントされている場合)を使用してオフライン作業を同期できます。 。
メモリースティックのgitリポジトリは自己完結型であるため、任意のコンピューターでそれを処理し、オンラインマシンにマウントするときに上記のように同期できます。
編集、re:スティックを自分でマウントすることは許可されていません:
管理者にレポをメモリースティックにgit clone
するように頼むことができれば問題ありません。それ以外の場合、管理者はproject.gitディレクトリ全体(裸のリポジトリの場合)またはproject/.git(それ以外の場合)をメモリスティックにコピーするだけで済みます。これに対処するには、リモートに注意する必要があります。 、等はオンライン機のものとなります。
その場合、プルは問題ではありませんが、マージの競合を解決するためにシステム管理者を信頼していない場合は、プッシュすることでさらに回避策が必要になる場合があります。独自のブランチがある場合、マージは問題になりません。それ以外の場合、「オフライン」でマージを行うには、レポのオフラインコピーを2つ、1つは作業中、もう1つは「オリジン」にすることができます。 、戻ってきたら、sysadmに「Origin」リポジトリへのgit pullを依頼し、オフラインコンピュータで、2つのメモリスティックリポジトリ間のマージを実行してから、sysadmにOriginリポジトリをマージするように依頼します。オンラインのもの。
ただし、これは少しもろく、競合状態に対してオープンであると感じるので、「オフラインにする」前に、実際には別々のブランチを作成しようとします。
コマンドgit bundle
はこのために設計されています。たとえば、リポジトリのマスターブランチをオフラインで複製するには、
cd my-repository
git bundle create offline-repos master
これにより、master
ブランチ全体がoffline-repos
という名前のファイルに保存されます。ファイルを別のコンピューターにコピーします。そのコンピューターで、次のように入力します
git clone -b master offline-repos new-repos
これにより、new-repos
からチェックアウトされたフォルダoffline-repos
が作成されます。クローンを作成したバンドルファイルは、リモートリポジトリとして扱われます。次のように、参照以降の変更を格納するバンドルを作成することもできます。
git bundle create offline-repos e45ad329..master
バンドルファイルoffline-repos
を新しい変更を含むバンドルに置き換えると、次のようにgit pull
することができます。
cd new-repos
git pull