9

I wish to use git with multiple remote repos. I have my central git server (aka origin), as well as my local dev machine. What I am trying to do is pull down the latest linux kernel from kernel.org's git repo. I will then make a few changes, and then push the whole modified repo up to my own git server.

I have managed to do this ok (by just doing git remote add a couple of times - ones for the origin and once for kernel.org). However, if I clone origin from scratch, I am unable to see kernel.org as a remote.

Is there a way to push the remote add commands? Or is it that everytime I wish to pull in changes from kernel.org (on a new machine), do I have to manually add it?

Also, when I create my local branch, I made it track a remote branch from kernel.org. Since I can't see kernel.org as a remote on a fresh clone, does this mean that this branch isn't tracking kernel.org anymore?

4

4 に答える 4

3
git push origin --mirror

すべてのローカル参照をオリジンにプッシュします。

于 2012-08-20T13:54:35.153 に答える
2

毎回クローンを作成すると、そのリポジトリの構成にあるものが失われます。これには、、、reflogおよびがstash含まれます。これをしないでください。押したり引いたりしても、これらのアーティファクトは移動しません。プッシュとプルから得られるのは、参照とそれを満たすために必要なオブジェクトだけです。リモート設定は伝達されません。クローンは、リポジトリ操作ごとに1回です。実際には、クローンはまったく使用できません。を使用して空のリポジトリを作成し、を使用してリモートを手動で追加してから、を使用してリモートを追加できます。remotesrerere cachegit initgit remote addgit fetch

于 2012-08-18T18:05:54.377 に答える
0

他の回答で述べられているように、私がやろうとしていることは、Git(リモートの共有)では実際には実行できません。したがって、私が意図しているのは、開発者のマシンにサードパーティのリモートが必要ないようにすることです。kernel.orgリモートブランチと同じローカルブランチを作成します。次に、このローカルブランチをgitサーバー(オリジン)にプッシュします。次に、次のようなcronスクリプトを作成します。

  • 上で作成したブランチのクローンを作成します。
  • kernel.orgのリモートを追加します
  • gitpullを実行してブランチを更新します
  • 追加、コミット、プッシュ

これは、自分のgitサーバーにkernel.orgブランチのコピーがあることを意味します。これは、ローカルチーム内で通常どおり追跡できます。その後、すべてのマージは通常どおり続行できます...

あなたが思うこと?

ありがとう

于 2012-08-20T17:12:11.693 に答える