2016-05-27 14 views
1

Devは長い間Devになっていましたが、バージョン管理のためにGitに切り替えました。gitブランチをチェックアウトした後、リモートFTPの変更はブランチまたはマスターにのみ影響しますか?

ここで私の痛いほど明白な質問は許されますが、以下のシナリオでは、gitの動作はどうですか?

ブランチを作成してブランチをチェックアウトすると、FTPクライアントを開いてファイルをダウンロードし、いくつかの変更を加えて再アップロードします(または、FTPを使用してサブライムからリモートで編集します)プラグイン)は、この時点で変更されたか、またはブランチのみ変更されていますか?私がブランチをチェックアウトしている間に他の誰かが私たちのdevサーバ上のそのファイルを編集するとどうなりますか?

私は、同じサーバー上で物理ファイルを編集することはできませんが、ローカルサーバーや開発サーバーに複製する必要はないと言います(それはひどく非効率的ですが)。私はちょうど私が十分に十分なgitの概念の周りに私の脳をラップしていることを確認しようとしています。

私はSAPを開発したときに、変更があった「トランスポート」が作成されましたが、誰もが同じファイルを編集していましたが、トランスポートは変更の内容と、どこでもファイルをクローンしなければならなかった。 Gitが同じように動作するかどうかはわかりません。

このトピックに関する説明は参考になります。

ありがとうございます!

リモートからブランチを取得、branchAを言って、チェックアウトその枝に、あなたが実際にそのブランチのローカルコピーを見ている:

答えて

1

はここでどのようにgitの作品です。正確には、origin/branchAはリモートブランチ、branchAはブランチのローカルコピーです。今の場合、あなたのローカルコピーは実際にあなたがftpして変更を行うリモートマシンにあります。現在のブランチでfile1というファイルを変更すると、コミットされていない変更にはfile1が含まれます。

多くの人が同じマシンにftpしている場合、どの人がその変更を見るのでしょうか?それはftpの仕組みだからです。ファイルをコミットしてorigin/branchAにプッシュすると、リモートブランチはコミットされた変更を取得します。

svnとは異なり、gitの中央サーバに依存しません。誰もがリモートリポジトリのコピーをクローンし、ローカルマシンのローカルコピーを変更し、変更をリモートにプッシュします。他の人は、共同作業でコードを引き出し、必要に応じて変更を加え、変更を加えるなどの作業を行います。そのため、分散バージョン管理と呼ばれています。

+0

ありがとうございます。私はDockerのような技術がこの非常に爆発的なことを知っていますが、開発者が複数のプロジェクトでどのように動作し、ローカルで編集することができるかを理解することはまだ難しいです。変更をプッシュする? – Wes

+0

ユーザーが変更を加えてリモートにプッシュすると、リモートブランチは1つ前のコミットを取得し、コミットを持たない別のユーザーのローカルブランチは1つ後ろにコミットします。だから彼が変更をプッシュしようとすると、gitはそれを受け入れません。しかし、単純に、彼はプッシュする前に引っ張るように求められます。こうすることで、コミットの順序は、任意の時点で異なるdevマシンのリモートコピーとすべてのローカルコピーで維持されます。 – venkatKA

関連する問題