問題タブ [git-non-bare-repository]
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 リポジトリにプッシュするには?
私は通常、Git リポジトリがある ssh (screen と vim) を介してリモート サーバーで作業します。時々私はオンラインではないので、ラップトップに別のリポジトリ (リモートから複製されたもの) があります。
ただし、通常はファイアウォールの内側にいるか、パブリック IP を持っていないため、リモート側でこのリポジトリからプルすることはできません。
ベアリポジトリにのみプッシュする必要があることを読みました。変更をリモート リポジトリにプッシュするにはどうすればよいですか?
git - サーバー上にある git リポジトリを作成する場合、ベア リポジトリに変換できますか?
私はすでにリポジトリを作成しました。ベアタイプにしようか、最初からやり直そうか。
git - 通常のGitリポジトリをベアリポジトリに変換するにはどうすればよいですか?
「通常の」Gitリポジトリをベアリポジトリに変換するにはどうすればよいですか?
主な違いは次のようです。
通常のGitリポジトリでは
.git
、リポジトリ内に、作業コピーを構成するすべての関連データと他のすべてのファイルを含むフォルダーがあります。裸のGitリポジトリには、作業コピーはなく、フォルダ(これを呼びましょう
repo.git
)には実際のリポジトリデータが含まれています
git - Gitプッシュを適切に強制するにはどうすればよいですか?
リモートの非ベア「メイン」リポジトリをセットアップし、それをコンピューターに複製しました。ローカルで変更を加え、ローカルリポジトリを更新し、変更をリモートリポジトリにプッシュしました。それまでは大丈夫でした。
今、私はリモートリポジトリで何かを変更する必要がありました。次に、ローカルリポジトリで何かを変更しました。リモートリポジトリへの変更は必要ないことに気づきました。git push
そのため、ローカルリポジトリからリモートリポジトリに移動しようとしましたが、次のようなエラーが発生しました。
履歴が失われるのを防ぐために、早送り以外の更新は拒否されました。もう一度プッシュする前に、リモートの変更をマージしてください。詳細については、の「早送りに関する注意」セクション
git push --help
を参照してください。
たぶん
ローカルコピーに変更をリモートコピーにプッシュして同じにするように強制します。強制的に更新されますが、リモートリポジトリに戻ってコミットすると、ファイルに古い変更(メインのリモートリポジトリに以前あった変更)が含まれていることがわかります。
答えの1つへのコメントで述べたように:
[私は]強制しようとしましたが、変更を保存するためにマスターサーバーに戻ると、古いステージングが発生します。したがって、私がコミットするとき、リポジトリは同じではありません。そして、もう一度git pushを使おうとすると、同じエラーが発生します。
この問題を解決するにはどうすればよいですか?
git - Gitでreceive.denyCurrentBranchを使用するとどうなりますか?
Gitリポジトリがあります。リポジトリのクローンを作成し、ローカルの変更をコミットできます。変更をサーバーにプッシュすると、機能します。
ブランチを作成したらすぐに、ブランチをチェックアウトし、作業をコミットしてから、マスターブランチをチェックアウトします。次に、ローカルの変更をマスターブランチにマージします。サーバーにプッシュしようとすると、次の例外が発生します。
1つの解決策は、次のコマンドを実行することです。
この後は機能しますが、なぜこのオプションを使用する必要があるのか知りたいです。これが唯一のオプションですか?これを行うことの結果は何ですか?
私が本当にやりたいのは、ブランチを作成し、それらをマスターブランチにマージしてから、変更をサーバーにプッシュすることです。
git - リモート Git リポジトリにプッシュした後、変更がコミットされていないのはなぜですか?
次のコマンドを使用して、新しい Git リポジトリをセットアップします。
次に、このリポジトリのクローンを作成し、いくつかの変更を加えてコミットし、プッシュしようとしました。
リポジトリにcd
戻るplans-for-world-domination
と、staging-area/index にステージングされた変更があります。これは、プッシュしたばかりの変更の逆です。
最初のレポに、プッシュしたものとは逆のステージングされていない変更があるのはなぜですか?どうすればこれを修正できますか?