1

私はそのような状況にあります。1人の開発者が./modelディレクトリで作業していて、それに新しいファイルを追加してから、新しいmodel_filesをコミットして、origin/masterにプッシュします。

現在、2番目の開発者は同じディレクトリ./model(自分の作業ディレクトリ)にもモデルを書いています。

開発者Aがそのようなモデルを作成するとします。

./model/m1.php
./model/m2.php

ここで、開発者Bはそのようなモデルを作成します。

./model/m3.php
./model/m4.php

開発者Bが自分の作業にm1.phpおよびm2.phpモデルを必要とするため、開発者Aのコミットが変更され、オリジン/マスターにプッシュするとします。

開発者Bは、。/ modelsディレクトリだけでなく、プロジェクト内に他の多くの変更/フォルダ/ファイルも作成しましたが、彼の作業はまだ完了していません。彼がマージまたはプルすると、彼の仕事は失われます。

開発者Bは、開発者Aが作成したフォルダー./model内の新しいモデルファイルをどのように取得できますか。開発者Bのマシンでこのようなことを試しました。開発者Bはm3.phpとm4.phpをコミットしなかったと思います。これは、そのファイルでまだ終わっていないためです。彼は./modelsディレクトリに開発者Aからの新しいファイル(m1.phpとm2.php)を持っている必要があります。開発者Bのマシンで私は試しました:

git fetch origin
git checkout origin/master ./model/*

しかし、残念ながら、エラーは私に与えます

error: pathspec 'model/m3.php' did not match any file(s) known to git.
error: pathspec 'model/m4.php' did not match any file(s) known to git.

しかし、私が実行した場合:

git checkout origin/master ./model/m1.php ./model/m2.php

その後は機能しますが、これは、このブランチからチェックアウトする必要がある正確なファイル名を知っている必要があることを前提としています。

誰かがこれを手伝ってくれますか?ありがとう。

4

4 に答える 4

3

私はそれを考え出した。最後の「*」を除いて、ほとんどすべてが問題ありませんでした。

リモートブランチからプロジェクトフォルダーにファイルをダウンロードする適切な方法は、このフォルダーに新しいファイルを追加するだけです:

git fetch origin
git checkout origin/master model/
于 2013-02-13T11:28:37.660 に答える
1

シェルが拡張します

git checkout origin/master ./model/*

git がそれを見る前に。にまで拡大している可能性が高い.

git checkout origin/master ./model/m1.php ./model/m2.php ./model/m3.php ./model/m4.php

そして、master欠落model/m3.phpしているgitからエラーが発生しますmodel/m3.php. *のように展開しないようにシェルに指示する

git checkout origin/master './model/*'

動作しているように見えるか、他のソリューションに従って明示的なパスを使用するだけです。

git checkout origin/master model/
于 2014-04-17T14:46:01.010 に答える
1

入ってくる変更を作業コピーにマージする必要があります。これを行うには、次のようにします。

git fetch origin
git merge origin/master

そのためには、まずコンピューター B でローカルの変更をコミットまたはステージングする必要があります。

于 2013-02-13T10:30:22.480 に答える