両方のディレクトリが同じサーバー上にあるため、SSHなどについて気にする必要はありません。
すべてが同じサーバー上にある場合、あなたはすべての開発者は、(=すべてのユーザーが書き込み可能である)にそれの変更をプッシュすることができます1つの裸のリポジトリ(git init --bare
)が必要です。非裸のリポジトリにプッシュすると、問題が発生することがあります。
あなたのユーザが異なるUNIXユーザの場合、chmod g+w
リポジトリだけでなく、すべてのディレクトリにスティッキービットを設定する必要があります(つまり、新しく作成されたものを意味しますディレクトリも権限ビットを継承します。そうでなければ、最初にユーザが作成したディレクトリは755となります。つまり、他のユーザはこのディレクトリにファイルを作成できません)。
開発者は彼のディレクトリで作業して、彼のバージョンを最終的にしたいとします。彼はステージングエリアを "/ release/live"に "プッシュ"する必要がありますか?
一般的なワークフローは、開発者が共通のリポジトリに変更をプッシュし、その後これらの変更は/release/live
からgit pull
によって/release/live
に送信されることです。 (また、共通リポジトリのフックでこの手順を自動化することもできます)。
また、新しいブランチヘッドがすでに存在するヘッドの子孫である場合にのみ、リモートブランチにプッシュすることができます。つまり、他の誰もこのブランチに何かをプッシュしていない場合にのみ、リモートブランチにプッシュできます。誰かがこのブランチにプッシュすると、この新しいブランチコンテンツを取得してから、自分の変更を新しいブランチコンテンツにマージまたはリベースする必要があります。
また、物事をねじ込んだバージョンをプッシュするとどうなりますか?どうすれば元に戻ることができますか?
いつでもgit checkout
プロジェクトの古いバージョンを使用できます。また、git revert
コマンドもあります。このコマンドは、特定のコミットの変更を取り消します。
コンテンツはどの拠点に保存されますか?
新しいgit repoを起動すると、変更はmaster
ブランチに保存されます。 git branch MyNewBranchName
(その後はまだmaster
)またはgit checkout -b MyNewBranchName
(新しいブランチに作業コピーを移動する)で新しいブランチを作成することができます。現在のブランチ名については、git branch
(引数なし)で調べることができます。そして、あなたの現在のブランチは、その前に星印がついています。もうブランチが必要ないときは、git branch -d MyNewBranchName
(このブランチのすべてのコミットが他のブランチにマージされることを保証します)またはgit branch -D MyNewBranchName
(ブランチを削除し、他のブランチにマージされないコミット最終的にガベージコレクション実行中に失われた)。
また、分岐に関する大きなリソースはhttp://nvie.com/git-modelです。
ああ、ルディを書くにはしばらく時間がかかるだろう。本当にありがとう!私はそれを再読し、情報を消化するつもりです。私はあなたが言及した仲間のいくつかを知っていたが、それにもかかわらず、驚くべき返信! – g1t
@ g1tこれはコンパイル時のためのものです。 http://xkcd.com/303/ – Rudi