0

私は Heroku で git を使用していましたが、すべてが順調に進んでいました。現在、VPS サーバーで git を使用しようとしていますが、動作させることができません。

私はssh経由で端末でそれをやっています。レールアプリです。新しい Rails アプリを作成するときはgit init git add .、コミットします。サーバー上で、git init --bare. プッシュしようとすると失敗します。

次に、ファイルを手動でサーバーにアップロードし、そこにレポを作成してローカルに複製しようとしましたが、ローカルで変更を加えてコミットし、それらをアップロードすると、失敗します。

私は実際にさらにいくつかのことを行い、何が失敗しているのかを自分で理解しようとしました。多くのさまざまなエラーとさまざまな方法がありました...さまざまなチュートリアルを読みました。自分のサーバープロバイダーでさえ、従ったものとしてエラーが発生しました。

エラー メッセージが表示されたとき、解決策を見つけようとしましたが、最終的にプッシュすることができません。場合によっては、プッシュがうまくいくこともありますが、リモート リポジトリは変更されていないようです (その後、エラーは発生しませんgit push)。

最後の 48 時間、私は文字通り、この作業を行うためにコンピューターを使用していました。そのたびに、最初からやり直し、さまざまなことを試していました。

かつて、私はそれを正しく行うための一歩に過ぎなかったと思います. 私がそれを作成し、少し奇妙に見えたので(私が従った手順を思い出せません)、別のブランチを使用したものである可能性があることに気付きました(私にとって):

$ git branch -r
origin/HEAD -> origin/master
origin/master

$ git branch
* master

おそらく同じリモートブランチとローカルブランチがリストされていないと思うので、奇妙です。

したがって、私の質問は、空のレールアプリで新しい git リポジトリを開始し、すべてを初めてサーバーにアップロードする方法です。問題があるかどうかはわかりませんが、ssh を使用してターミナルからサーバーに接続し、サーバーは Apache/Phusion Passenger として使用します。

私は実際にこれに関するすべてのグーグルの結果を訪問済みとしてマークしています。ここでの質問のほとんどは私の問題に関連しています。うまくいけば、誰かが私に正しい方法を教えてくれます。

4

3 に答える 3

1

あなたはとても近くにいるようです。開発マシンで、適切なリモートが定義されていることを確認してください。

git remote add origin ssh://<username>@<hostname>[:<port>]/path/to/repo/dir

次に、プッシュに次のようなブランチが含まれていることを確認します。

git push origin master

次のようなものが表示されます。

ebg@ebg(21)$ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 207 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://gozoner@<hostname>:2222/home/gozone/git/foo
 * [new branch]      master -> master

私の正確なプロセス:

$ mkdir /tmp/foo; cd /tmp/foo; touch foo.c; git init;
$ git add .; git commit -m 'foo'
$ ssh remote
> mkdir ~/git/foo; cd ~/git/foo; git init --bare
> ^D
$ git remote add origin ssh://.../home/gozoner/git/foo
$ git push origin master

[編集]

次に、リモートリポジトリ(上記の例の〜/ git / foo)を見ると、.gitのようなファイルしか表示されません。リポジトリのコンテンツを取得し、Railsアプリを実行するには、クローンを作成します。

$ ssh remote
> git clone ~/git/foo ~/rails/foo
> cd ~/rails/foo
> # your files are there; run web server
于 2013-03-16T19:12:17.603 に答える
1

なぜそれが機能しないのかわかりませんが、リモートリポジトリを設定する別の方法があります。

(以下はPro Gitの第4.2章に基づいています。より詳細な説明については、リンクを参照してください。)

リポジトリの「ベア」バージョンを作成します。gitリポジトリの親ディレクトリからこのコマンドを実行します。

local$ git clone --bare my_project my_project.git

ベアリポジトリをリモートサーバーにコピーします。この例では、ベアリポジトリをに配置し~user/gitます。

local$ scp -r my_project.git user@your-remote-server.com:git

これで、ローカルリポジトリルートから次のコマンドを実行して、既存のリポジトリからアクセスできるようになります。

local$ git remote add origin user@your-remote-server.com:git/my_project.git

または、すべてのクローンを作成できます。

local$ git clone user@your-remote-server.com:git/my_project.git
于 2013-03-16T19:28:58.380 に答える
1

あなたのステップは良さそうですが、もう一度説明します

[user@server] cd path/to/repo
[user@server] git init --bare projekt
[user@home] git push user@server:path/to/repo --all
于 2013-03-16T18:58:11.420 に答える