問題タブ [git-push]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - Heroku: さまざまなローカル Git ブランチを Heroku/master にプッシュする方法
Heroku には、'master' 以外のすべてのブランチを無視するポリシーがあります。
Heroku の設計者にはこのポリシーを採用する優れた理由があると確信していますが (ストレージとパフォーマンスの最適化のためだと推測しています)、開発者としての私にとっての結果は、私が取り組んでいるローカル トピック ブランチが何であれ、簡単な方法が欲しいということです。 Heroku のマスターをそのローカル トピック ブランチに切り替え、「git push heroku -f」を実行して、Heroku のマスターを上書きします。
http://progit.org/book/ch9-5.htmlの「Pushing Refspecs」セクションを読んで得たものは
私が本当に欲しいのは、構成ファイルでこれを設定して、「git push heroku」が常に上記を実行し、local-topic-branchを現在のブランチの名前に置き換える方法です。誰かがそれを達成する方法を知っているなら、私に知らせてください!
もちろん、これに関する注意点は、Heroku アプリ/リポジトリにプッシュできるのが私だけである場合にのみ、これが賢明であるということです。テスト チームまたは QA チームは、そのようなリポジトリを管理してさまざまな候補ブランチを試すことができますが、特定の日にどのブランチにプッシュするかについて全員が同意するように調整する必要があります。
言うまでもなく、すべてをバックアップするためのこの制限のない別のリモート リポジトリ (GitHub など) を持つことも非常に良い考えです。その 1 つを「オリジン」と呼び、Heroku に「heroku」を使用して、「git push」が常にすべてをオリジンにバックアップし、「git push heroku」が現在のブランチを Heroku のマスター ブランチにプッシュして上書きするようにします。必要であれば。
これは機能しますか?
Heroku でダミーのアプリを作成して実験することもできると思いますが、実験を始める前に、より経験豊富な人から話を聞きたいと思います。
フェッチに関しては、Heroku リポジトリが書き込み専用かどうかはあまり気にしません。すべての作業のバックアップとクローンを作成するために、GitHub などの別のリポジトリがまだあります。
脚注: この質問は、Heroku でブランチ戦略を使用した Good Git の展開と似ていますが、まったく同じではありませんか?
git - 同時に 2 つ以上のリモート リポジトリにプッシュできますか?
同時に 2 つ以上のリモート リポジトリにプッシュできますか?
すべてではないにしても、ほとんどのプルがそこから来るメインリポジトリのみをミラーリングしたいだけです。
git - git:ドライランのパックされたオブジェクトを保存して、後でプッシュすることは可能ですか?
多くのコードと数千の MP3 および PDF ファイル (それぞれ 5 ~ 40 MB の範囲) を含む一連のコミットをプッシュしようとしています。
Git はオブジェクトを正常にパックします。
しかし、まだ不明な理由でプッシュを送信できません。
問題は、ファイルを再パックするのに非常に長い時間がかかることです (私はバッテリー駆動のラップトップを使用しており、パックするのに約 20 分かかりました)。
したがって、私の質問は次のようなフレーズになると思います。
- 予行演習で作成されたパック オブジェクトを保存することはできますか?
- 保存したら、それらのパックされたオブジェクトをプッシュして、再パックを回避することは可能ですか?
git マニュアルなどで調べたところ、決定的なものは見つかりませんでした。
ヘルプやポインタをいただければ幸いです。
編集- エラーメッセージを追加しました:
これをコマンドライン (`git push') から初めて実行したときに、次のエラーが発生しました。
2 回目 ( git push origin master -v
) 次のエラーが発生しました。
どちらの場合も、圧縮が終了した後、次のダイアログが表示されたことに注意してください。
ダイアログが開いている間、コンソールは次のように表示されます ([OK] をクリックすると、[オブジェクトの書き込み] 行が消去されます)。
EDIT 2 - git gc
Charles Bailey の提案に従って実行した後、約 1.5 時間後に次の出力が得られました。
git - git リポジトリにプッシュできません。「オブジェクトの書き込み:100%」の後にハングします
次のコマンドで git デーモンを実行しています。
更新を複製してプルすることはできますが、プッシュしようとすると取得されます
、その後ハングします
現在gitバージョン1.7.0.4を使用しています
git - gitorious をミラーとして使用するために、git push 用に git 内で使用する SSH キーを指定する方法は?
git.debian.org (alioth) でホストされているプロジェクトがあり、http: //gitorious.orgのリポジトリのミラーを更新するために post-receive フックを構成したいと考えています。
私は使用する必要があると思いますgit push --mirror gitorious
プッシュを成功させるには、gitorious で Alioth を承認する必要があります。それ、どうやったら出来るの?
gitorious でユーザーを構成し、そのための ssh キーを作成する必要があると思います。そして、post-receive フックで git push を実行するときは、この ssh キーが使用されていることを確認してください。
を使用することもできます~/.ssh/config
が、問題は、多くのユーザーが alioth をプッシュできることであり、全員がログインして を構成する必要があります~/.ssh/config
。代わりに、使用するキーを ssh に指示するコマンド ライン オプションまたは環境変数が必要です。それをしてもいいですか?
また、ミラーリングを実現する方法について他にアイデアはありますか? そして、それを逆に設定することは可能ですか?
git - Gitの受信/更新フックと新しいブランチ
'update'フックに問題があります。新しいブランチの場合、「oldrev」として0000000000000000000000000000000000000000を取得します。そして、私はそのケースを処理する方法がわかりません。
すべてのコミットメッセージが有効なJiraの問題を参照するという要件があります。そこで、中央リポジトリに「更新」フックをインストールしました。そのフックは「oldrev」と「newrev」を取得します。次に、それらを次のように「gitrev-list」に渡します。
git rev-list $oldrev..$newrev
これにより、すべての回転数のリストが表示されます。このリストを繰り返し処理して、必要な処理を実行できます。
問題は、ユーザーが新しいブランチをプッシュすると、フックがoldrevとして0000000000000000000000000000000000000000を取得することです。そして、「gitrev-list」は単に次のように文句を言います。
fatal: Invalid revision range 0000000000000000000000000000000000000000..21bac83b2
では、その新しいブランチにあるすべての回転数のリストを取得するにはどうすればよいですか?私はかなり長い間ネットを検索しましたが、何も見つかりませんでした。私が見つけたフックの例
- 問題を処理せず、上記のエラーメッセージで失敗します
- oldrevを""に設定して問題を誤って修正しようとすると、rev-listから誤った結果が返されます。
- 彼らがそのoldrevに遭遇したときに単にあきらめる
これらのどれも特にエキサイティングに聞こえません。
それで、誰かがその場合に正しい答えを得る方法を知っていますか?「newrevから到達可能であるが、他のブランチ(=新しいブランチを除くすべてのブランチ)からは到達できないすべての回転数を取得する」ためにgitにクエリを実行することを考えていました。しかし、それでも、新しいブランチから古いブランチへのマージがあった場合、間違った答えが返されます。
git - GIT からディレクトリを削除した後にコミットする方法
GIT からファイルまたはディレクトリを削除することについて言及している投稿がいくつかありますが、これらの変更をメイン リポジトリにプッシュする方法については説明していません。
たとえば、これはディレクトリを削除するのに問題なく機能しますが、この変更をメインの Git リポジトリにプッシュしようとすると拒否されます。
これを実際にメインリポジトリにプッシュし、実際にそのディレクトリを削除する最後のステップは何ですか?
git - gitを使用して、ローカルリポジトリにないブランチを削除します
GitHubでフォークしたときに取得したgitリポジトリの1つにたくさんのブランチがあります。GitHubフォークにこれらのブランチを持たせたくありません。
ローカルリポジトリにないGitHubリポジトリのすべてのブランチを削除する方法はありますか?
git - http からプルし、1 つの「リモート」で ssh を介してプッシュするように git を構成する方法は?
http からプルして認証を回避します (ssh.keygen を使用していない場合は、パスワードを入力する必要はありません)。
認証を使用して ssh をプッシュします。