0

私は git (Web 開発用) を使用することを検討し、lynda.com で多くのレッスンを見て、今のところいくつかのブログ投稿を読みました。しかし、答えが見つからなかったり、仕組みが理解できなかったりする質問が 1 つあります。

Web サーバー、ローカル サーバー上のレポ、ローカル マシン上のレポがあります。

そのファイルの作業中に (別のチーム メンバーによって) 更新されたローカル サーバー/Web サーバーへの変更をコミットするとどうなりますか? 警告は出ますか?自動的にマージされますか? ファイルを上書きしますか?

例: CSS および PHP ファイルをいくつか編集し、以前にローカル ファイルを更新するのを忘れました。これらのファイルを、ファイルが新しいローカル サーバーにコミットするとどうなりますか?

4

2 に答える 2

1

git でリモート (つまり、サーバー) にプッシュするとき、ブランチのローカル バージョンとリモート バージョンの間のコミットのシーケンスが直線的でない場合、プッシュは拒否されます (非常に迷惑な "non -早送り」の問題)。このような問題を回避したい場合は、プッシュする前にサーバーに最新バージョンのコードがあることを確認することをお勧めします。私がすることは次のとおりです。

リモートにプッシュする前に: -git remote updateすべてのリモートを取得します。- 作業ディレクトリに変更がある場合は、git stashとりあえず保存して作業ディレクトリを消去します。-との最新の共通祖先との間git rebase origin/masterのコミットを適用し、ブランチをこの新しい場所に移動しますmastermasterorigin/masterorigin/mastermaster

origin明らかに、 andmasterを選択したリモートおよびブランチに置き換えることができます。これで、プッシュ時に早送り以外の問題を心配する必要がなくなり、プッシュする前に最新バージョンのコードを扱っていることを確認できます。

または、1 人の開発者のみがサーバーのブランチにプッシュできるように設定することもできます。そのため、複数の人がサーバーにプッシュすることを心配する必要はありません。代わりに、1 人の開発者がサーバーへのすべての変更を管理します。

于 2013-06-29T15:34:24.117 に答える
0

ファイルは上書きされません。両方の変更 (自分とチーム メンバー) を適用するだけかもしれません。両方がファイルの同じ部分を変更した場合、競合が発生するため、解決してから再度プッシュする必要があります。

于 2013-06-29T15:44:59.440 に答える