新しいサーバーへのGitプッシュ/クローン


127

私はGitを学習しているだけで、解決できないことがあります。Macでローカルにgitリポジトリを作成して使用した後、別のサーバーにコピーをプッシュできますか?ファイアウォールの内側にいるため、残念ながらgit clone他のマシンからは実行できません。

回答:


137
  1. git remote add 名前の URL
  2. git push 名前 ブランチ

例:

git remote add origin git@github.com:foo/bar.git
git push origin master

のドキュメントを参照してくださいgit push。指定したブランチのデフォルトのリモートとしてリモートを設定できます。そうでない場合、名前originは特別です。ただgit push一人でgit push origin thisbranchと同じことをします(あなたがいるどんなブランチに対しても)。


7
近い効果については、「クローニングプッシュ」だけではなく_branch_をpushinhgit push -u --all我々は省略することができorigin、それはデフォルトではプッシュしての名前を仮定だとして-uも、リモートブランチを追跡します。
cregox

13
を使用してサーバーに空のベアリポジトリを作成し、git init --bare /foo/bar.gitローカルリポジトリをそこにプッシュするだけで十分です(この回答のように)。zip形式で圧縮されたファイルをサーバーに転送する必要はありません。
OderWat

1
OderWatの出向。例として、リモート(つまりgit@github.com)にログインしているときに「git init --bare foo / bar.git」を実行すると、「リモートの起点」にプッシュ先が設定されます。githubの例については、githubのリポジトリ/追加Webインターフェイスを使用して、それが提供する「コマンドラインから既存のリポジトリをプッシュする」のアドバイスに従うことができると思います。Githubは '-u'にトラッキング参照を引き起こすようにアドバイスします。
Dave X

この方法は標準的な方法かもしれませんが、鈍く、gitを使いにくくします。私は私のいくつかのgitの愛が、良い天はそれはいくつかのUIの問題もありません...
ロス・ロジャース

私は自由に元の質問に追加された「編集」段落を削除しました。これにより、この手順に問題があるように見えました。私はそうは思いません、とにかくそれはおそらく質問編集ではなくコメントであったはずです。
August Lilleaas

75

まず、ローカルマシンでリポジトリのベアクローンを作成します

git clone --bare /path/to/repo /path/to/bare/repo.git  # don't forget the .git!

次に、tar / gzipまたはお気に入りのアーカイブツールを使用して、新しいrepo.gitディレクトリをアーカイブし、アーカイブをサーバーにコピーします。

サーバー上のリポジトリをアーカイブ解除します。次に、ローカルリポジトリにリモートを設定する必要があります。

git remote add repo-name user@host:/path/to/repo.git #this assumes you're using SSH

その後、次のコマンドを使用して、リモートリポジトリにプッシュしたり、リモートリポジトリからプルしたりできます。

git push repo-name branch-name
git pull repo-name branch-name

4
「.gitをお忘れなく!」というコメントを説明していただけますか?フォルダの最後に.gitを追加するポイントはどこですか?これはいつ行うべきですか?大会のみ?
ランブリック'23

5
".git"は、裸のgitリポジトリを特定するための非公式の標準にすぎません
Grant Limberg、

3
私はこのアイデアに従っていません...これはgitサーバーをセットアップし、実際にそれを使用して、他の方法で圧縮して使用するのではなく、「転送/コピー/同期/バックアップの維持」に使用しませんか?
cregox

1
元のリポジトリは、プッシュしたいサーバーが存在するネットワークにアクセスできないネットワーク上にあったため、これはまさに私が必要とするものです。これにより、アクセスできたボックスにリポジトリを置くことができました。
michaeltwofish 2012年

3
@Cawasリポジトリを手動でzip / copy / extractする必要があるのは1回だけです。その後、必要なのはgit pushとpullだけです。
スペアバイト

9

リポジトリを移動するには多くの方法がありますが、git bundleネットワークの可用性が不十分な場合に適しています。Gitリポジトリは実際にはファイルでいっぱいのディレクトリにすぎないため、.git最適な方法でディレクトリのコピーを作成することにより、リポジトリを「クローン」できます。

最も効率的な方法は、どこかで外部リポジトリを使用することです(GitHubを使用するか、Gitosisを設定する)git push


7
remote server> cd /home/ec2-user
remote server> git init --bare --shared  test
add ssh pub key to remote server
local> git remote add aws ssh://ec2-user@<hostorip>:/home/ec2-user/dev/test
local> git push aws master

私はあなたの答えの単純さが好きですが、それが私が必要とするものかどうかはわかりません。GitHubに既存のGITリポジトリがあり、ライブファイルにUbuntuサーバー(GITがインストールされている)にプッシュしたい。プロセスを明確にするためにコメントを追加できますか?
Dave Everitt

1

ブランチをリモートサーバー、たとえばgithubにプッシュできます。最初にプロジェクトの初期設定を行ってから、プロジェクトのクローンを作成し、次の手順を実行する必要があります。

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