問題タブ [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 - "git push" が失敗しました: "プッシュする refspecs が指定されていません"
projectlocker に git プロジェクトをセットアップして、自分の git ファイルをプッシュします。次に、git プロジェクトを初期化し、ファイルをステージングしたディレクトリに移動しました。最後に、次のコマンドでプロジェクトを projectlocker にプッシュしようとしました。
次のエラーが生成されます。
このように押し込もうとして何か問題がありますか?
この構文を使用している誰かの例を見つけました:
" " を使用する必要がremote add
ありますか? 上記のように URL に直接プッシュできないのはなぜですか?
git - なぜ「git push helloworld +master:master」ではなく「git push helloworld +master:master」なのですか?
最初は次のように (初めて!) git リポジトリをプッシュしようとしました。
しかし、私はこれを取り戻しました:
それで、「修正されたコミット」に関する別の StackOverflow の質問を見つけ、それが私に役立つかどうか本当にわからないまま、そこから提案を試みました。
出来た!
しかし、なぜそれが私の問題を解決したのかわかりません:(
git push helloworld
これが機能するのに「 」が機能しない理由を誰か説明できますか?
git - git ブランチのリベース プッシュ サイクル
私は現在、別のリポジトリのマスター ブランチに基づいて、単一のブランチを持つ github リポジトリを使用しています。github ブランチは私の作業のバックアップであり、プルすることを意図したものではありません。そのため、マスター リポジトリからリベースするときにその履歴を書き直すことに問題はありません。
私の問題は、クリーンな履歴が必要なことです。履歴が分岐する場合、それはできません。これは、プッシュ (最初の作業) + リベースを行うと発生します。2 回目のプッシュは拒否されます。
ブランチを削除してからプッシュしようとしましたが、これにはレポのドロップ作成を行うという厄介な副作用があり、これは遅いです。
この問題にどのようにアプローチすればよいですか?
git - ベアでない Git リポジトリにプッシュするには?
私は通常、Git リポジトリがある ssh (screen と vim) を介してリモート サーバーで作業します。時々私はオンラインではないので、ラップトップに別のリポジトリ (リモートから複製されたもの) があります。
ただし、通常はファイアウォールの内側にいるか、パブリック IP を持っていないため、リモート側でこのリポジトリからプルすることはできません。
ベアリポジトリにのみプッシュする必要があることを読みました。変更をリモート リポジトリにプッシュするにはどうすればよいですか?
git - Gitブランチをローカルおよびリモートで削除するにはどうすればよいですか?
ローカルとリモートの両方でブランチを削除したい。
リモートブランチを削除しようとして失敗しました
remotes/origin/bugfix
ローカルとリモートの両方でブランチを正常に削除するには、どうすればよいですか?
git - git が一部のファイルに変更をプッシュしないようにする方法
git svn を使用して Subversion リポジトリのクローンを作成しました。ソースには、システムに合わせて編集する必要がある構成ファイルがいくつかあります。これらのファイルへの変更をローカル リポジトリに保存したい (ローカルで変更されたファイルを気にせずにブランチを簡単に切り替えるため) が、それらの変更がリモート リポジトリにプッシュされないようにしたいと考えています。
誰でも私を助けることができますか?
前もって感謝します。
git - WebDAV 経由の git http push - ユーザー名に「@」が含まれている場合はどうなりますか?
私の Web ホスティング プロバイダーでは、WebDAV 経由で Web スペースにアクセスできるので、何が起こるかを確認するためだけに、そこに git リポジトリをセットアップしようと考えました。「git clone http://my.server.com/repo.git」は標準のHTTPトランスポートを使用するだけなので、リポジトリの読み取り専用のクローンは問題なく機能します。
私のユーザーIDは「user@my.server.com」で、ポート2077を使用する必要があるため、WebDAVを使用しようとすると問題が発生します。これは、次のようなことをしなければならないことを意味します
「git push origin master」が「エラー 22」を報告するため、URL の 2 つの @ 記号が問題を引き起こしているに違いありません。
.netrc ファイル エントリを作成してみました
しかし、それは役に立たなかったようです。
また、最初の「@」を「%」、「\@」、「%40」に置き換えてみましたが、どれも機能しませんでした。
git - リモートのgitリポジトリにプッシュ時にマージコミットを拒否させる
私がやりたいこと:
マージコミットを中央リポジトリにプッシュすることを禁止したい。唯一の例外は、中央リポジトリに存在するブランチ間でマージが行われる場合です。これを中央リポジトリで実施したいと思います。
私がこれをしたい理由の説明:
注:この説明によって、私がやりたいことの道から外れてしまう場合は、説明を無視してください。もちろん、以下で説明する問題を解決する他の方法を聞いてうれしいですが、私が興味を持っている答えは、上記のようにやりたいことです。
いくつかの開発者が追跡するブランチを持つ中央のgitリポジトリがあります。各開発者は、その中央リポジトリのブランチ用にリモートを構成しています。
このプロジェクトの同期コミットポリシーに従うため、各開発者は、プッシュする前に、常に最新の作業をリモートブランチHEADの上にリベースする必要があります。マージコミットが中央リポジトリにプッシュされないようにすることで、このポリシーを適用したいと思います。唯一の例外は、中央リポジトリに存在するブランチ間でマージが行われる場合です。
簡単にするために、開発者のローカル追跡ブランチがリモートブランチとマージされることは望ましくありません。ただし、常にリモートブランチに基づいてリベースします。
branch.NAME.rebase = trueを設定することで、開発者のマシンにこれを部分的に適用しました。これは、開発者がgit pullを使用する場合の問題を回避するのに役立ちますが、中央リポジトリ側でこれを適用するソリューションが必要です。
非常に基本的な解決策は、「GITURLのブランチ'NAME'をマージする」というコメントでコミットを拒否することですが、コミットのすべての親が中央リポジトリのブランチパスに存在するかどうかをチェックするという方針に沿った何かがより興味深いでしょう。
提案?ソリューション?
編集:
これは私がこれまでに持っているものです:
厄介なのは、2人の親の祖先が1つのブランチに由来するかどうかを判断することです。また、refが更新される前にpre-receiveフックが呼び出されるため、プッシュにリモートに存在する2つのブランチのコミットが含まれている場合(これら2つのブランチ間のマージを含む)、ここでの解決策はわかりません。 。
git - git:作業コピー間をプッシュするためのシンプルなソリューション
私がやりたいこと: (sshリモートアクセス可能な)大学のマシンで、gitソース管理下に置いたプロジェクトに取り組んでいます(git init
その後git commit -a
、すべての変更後、すべて正常に動作します)。今、私は自宅のプライベートマシンでそのプロジェクトに取り組みたいと思っています。gitは分散VCなので、簡単なはずですよね?
私はgitチュートリアルを読みました。これはgit pull
、自宅で変更を行うために大学で行うことを提案しています。自宅のマシンにリモートアクセスできないため、これは機能しません。だから家でやろうと思ったgit push
。それは機能しますが、非ベアリポジトリはプッシュ用に設計されていないためgit reset
、複雑です(後で大学で必要になるなど)。
質問1:セットアップにベアリポジトリを追加するよりも簡単な方法はありますか(つまり、(1)「メイン」ベアリポジトリ、(2)大学のワーキングコピー、(3)ホームワーキングコピーがあります) )?
<Rant>本当にそのセットアップが必要な場合は、SVNにとどまることができたでしょう。</ Rant>
質問2:そのセットアップが本当に必要な場合、どうすればそのベアリポジトリを作成し(おそらくgit clone --bare
)、それを「メイン」リポジトリにすることができます。つまり、そこgit push
に行くことになっている作業コピーを伝えることができます。
PS:ベア以外のリポジトリにプッシュできる受信後のフックが浮かんでいることは知っています。試してみましたが、大学のマシンのgitバージョンがかなり古く(1.5.5.6)、フックで使用されるいくつかのコマンドが欠落しているため、うまく機能しませんでした。更新はオプションではありません。とにかくサードパーティのスクリプトを使用しないソリューションをお勧めします。
git - Git プッシュはベア リポジトリのみですか?
外部ディスクのリモート リポジトリに 'git push origin master' を実行しようとすると、チェックアウト リポジトリへのプッシュが git の次のリリースではデフォルトで拒否されるという警告が表示されました。外部ディスクでプロジェクトをチェックアウトしました。コンピューターで行った変更をこれらのリポジトリに送信したいと考えています。「git push origin master」は正しい方法ではありませんか? 外部ディスクのリポジトリで 'git pull ...' を実行する必要がありますか? だから私は変更をプッシュすることはできませんが、それらをプルするだけですか? 「ベア」リポジトリでの作業のみが異なりますか? 外部ディスクのリポジトリが裸のリポジトリである場合、変更をプッシュできますか? 私は正しく理解していますか?