問題タブ [git-bare]
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 リポジトリを備えたサーバーがあります。post-receive
サーバーコードを最新の on で更新する単純なフックがありますmaster
。
実稼働サーバーでバグが見つかった場合、特定の過去のコミットに戻す必要がある場合があります (ローカルで自分自身をテストしますが、すべてをキャッチするわけではありません)。このセットアップで過去のコミットに戻す良い*方法はありますか?
*ナイスとは、裸のリポジトリにプッシュするようなワンライナーを意味します:git push prod master
git - ベア Git リポジトリのブランチへのプッシュ
本番サーバーに裸の Git リポジトリを作成しました。次に、ローカル リポジトリをベア リポジトリにプッシュしたところ、うまくいきました。しかし、ローカルが古いため、代わりに本番リポジトリをベアにプッシュする必要があることに気付きました。ということでやってみましたが、エラーになりました。そこで、ベアに「プロダクション」ブランチを作成して、そこにプッシュしようとしました。問題は、「git push /var/www/html.git (私のベア リポジトリ)」を実行すると、「マスター」を更新できないと報告されることです。ベアで「プロダクション」ブランチにプッシュするにはどうすればよいですか? (「git push master production」も試しましたが、ベア リポジトリの「production」ブランチを参照しているようには見えませんでした)
git - 既存のリポジトリのベア リポジトリ クローンを作成した後、元のリポジトリをベア リポジトリのクローンとして扱うことは可能ですか?
質問: 作業ディレクトリを持つ既存の git リポジトリがあります。このリポジトリをチームと共有したいと考えています。私は次のことを行いました:git clone --bare repo_dir repo_dir.git
そして、チームにrepo_dir.git
. repo_dir
ここで、裸のレポにプッシュされた変更を最新の状態に保ちたいと考えています。アプローチは、 からリモート起点を削除し、を指すrepo_dir.git
リモート起点を追加するだけでした。あれは:repo_dir
repo_dir.git
元のレポを更新しgit pull origin master
てみました。問題なく動作しているように見えましたが、変更しないままにしておくと、奇妙な動作につながる他の構成がいくつかあるのではないかと心配しています。この元のリポジトリを裸のリポジトリのクローンとして扱っても問題ありませんか、それとも他の変更を加える必要がありますか? 誰かがここで何か洞察を持っていますか?
ありがとう!
git - 裸の git リポジトリにマージできないのはなぜですか?
merge
裸のレポに入れられないのはなぜですか? HEAD
ベア リポジトリには、または作業ツリーがありません。構成ファイルには、bare=true
.
また、裸のレポではできませんpull
(pull = fetch & merge and merge が機能しないため)。ただし、裸のレポにプッシュすることはできます。なぜでしょうか? 私の知る限り、 にpush
もマージが含まれていますが、この場合はうまく実行できます。
ですから、「git merge はどのように機能するのですか?」という質問になるかもしれません。なぜそれが必要なのHEAD
ですか?マージするときは何をしていますか?
git - Windows ファイル サーバー上の共有 Git リポジトリ (失敗)
誰かが飛び込んで以前の投稿を参照する前に、私はそれらすべてを試してみましたが成功しませんでした.
タイトルが示すように、ローカル パス (例: ) を使用して、Windows ファイル サーバー上に共有 git リポジトリをセットアップしようとしていますs:\SharedProjects\foo
。ここで、各開発者はローカル リポジトリ (例: c:\MyProjects\foo
) を持っています。
これまでのところ、リポジトリを作成/クローンできましたが、ローカルユーザーから共有ディレクトリに変更をプッシュバックできません。私はそれを--bare
リポジトリとして設定しようとしました、私は設定しようとしました--git-dir
と--work-tree
、しかし私はいつも異なる問題を抱えています。
リポジトリをベアとして設定すると、すべての git-dir ファイル ( .git/*
) がルート ディレクトリ ( ) のすぐ下に存在し、またはs:\SharedProjects\foo\[config, HEAD, ..*]
などの他のリポジトリ タスクを実行できなくなり、これらの操作は作業ディレクトリで行う必要があるとのことです。git ls-files
git status
裸のリポジトリ (例: \SharedProjects\bar
) の上に作業ディレクトリを設定しましたが、git リポジトリを認識しないため、操作を実行できません:|
私はここで夢中になっています.. --git-dir
and--work-tree
を設定するためにできる限りの方法を試してきました..私のリポジトリを--bare --share=everybody
..私は今どこにいるのか見失いました!
中央リポジトリ管理とローカル リポジトリのプッシュ/プル操作を可能にするリポジトリを (Windows ファイル共有で) 作成するための具体的な手順を教えてください。
よろしくお願いします!
windows - Git: {n/a (アンパッカー エラー)} をプッシュできません
ローカル マシン [Windows OS] にベア リポジトリを作成し、gitolite もインストールしました。
ベア リポジトリに変更をプッシュしようとすると、次のエラーが発生します。
私は同じエラーをグーグルで検索しましたが、どこでもパーミッションで終わり、Linuxに固有のものです。Windows OSでこの問題を解決するのを手伝ってくれる人はいますか?
私は自分のコンピューターの管理者なので、アクセス許可が問題にならないことを願っています。
親切に私を助けてください。
git - bare repo からの git checkout が作成ではなく削除されるのはなぜですか?
これは一種の奇妙なものであり、私の特定の状況以外にあまり適用されない場合は、事前にお詫び申し上げます. 私は git を使用して、展開に関連する一連の生成されたファイルとリリース コードを指すサブモジュールをコミットしてタグ付けすることにより、展開パッケージを管理しています。各マシンの裸のリポジトリから別の空のディレクトリに、この展開タグの git チェックアウトを実行しようとしています。取得した出力は、作成する必要のあるファイルを削除したことを示しており、その後、作業ツリー ディレクトリは空のままです。
my_tag によって参照されるコミットと master のヒントの両方に同じ 4 つのファイルがあることを述べておく必要があります (ただし、内容は異なります)。これにより、次の手順で 75% の結果が得られることは非常に奇妙です。
問題は、「リリース」は git サブモジュールであり、.gitmodules なしでは初期化または更新できないため、75% の方法ではまだ十分ではありません。
この問題の解決策の 1 つは、デプロイするたびにレポジトリを新しく複製することです。誰もより良い解決策を提案できない場合は、その方法で行くかもしれません。しかし、理想的には、各マシンに 1 つのベア レポを保持し、そこから毎回新しいワーク ツリーにチェックアウトしたいと考えています。ここで何が起こっているのか誰か教えてもらえますか?
参考までに、Git 1.8.2.1 を使用しています。