8

私はGitHubを積極的に使用しなければならない立場にありますが、まだGitHubにはまったく慣れていません。

とにかく、「git pull アップストリーム マスター」を使用して、現在取り組んでいるプロジェクトの最新コードをプルしてマージしました。このコマンドは、コンピューター上の実際のファイル (ディレクトリに表示されるファイルなど) を更新すると思っていましたが、何も起こりません。

確かにコンソールには多くの変更が記載されていますが、それらのどれも発生していないようです. 実験として、ファイルの1つからすべてを削除し、これが変更されるかどうかを確認するために再度プルしましたが、「すでに更新されています」と表示されます。

それが役立つ場合は、入力しgit branch -vて次のように取得しました。

* master a2e10a4 [ahead 29] git workflow experiment

また、git status次のようになります。

# On branch master
# Your branch is ahead of 'origin/master' by 29 commits.
#
nothing to commit (working directory clean)

最後の注意として、私の唯一のブランチは master です。

何が起こっているのですか? また、"プルされた" 変更をディレクトリ/コンピューターに表示するにはどうすればよいですか?

4

2 に答える 2

3

master はupstream/master(ここのように) 追跡していないと思われます。つまり、 aはからコミットをフェッチgit pull upstream masterするだけで、何もマージしません。 これらを手動でマージできます: .upstream
git merge upstream/master

さらに、そうでupstreamはなくoriginmaster先に進んでいorigin/masterます: ここでプルするものは何もありません。オリジンにプッシュする 29 個の新しいコミットのみです (これはフォークである必要があります。これは、GitHub サーバー側のアップストリームからのクローンです: What is the GitHub のオリジンとアップストリームの違いは? )。

フォークと上流

于 2013-03-12T20:35:14.717 に答える
3

入力したコマンドはgit pull upstream master. このコマンドは、アップストリームからローカル ブランチに変更をフェッチしてマージします。

このgit statusメッセージは、アップストリームのすべてがローカル マスターと既にマージされていることを示しています。しかし、まだ変更をリモートにプッシュしていません。つまり、変更をローカル リポジトリにコミットしましたが、まだリモートにプッシュしていません。git のような分散型 VCS では、commitpushは同じものではありません。

入力git push origin masterして、変更を上流のリモートに送信します。これにより、すべてが同期されます。

それでもうまくいかない場合は、ローカル リポジトリをリベースする必要があるかもしれません。ローカルの作業の下でリモートの起点をリベースするには、次のように入力しgit pull -r origin masterます。次に、 と入力しgit push origin masterます。

プッシュする準備ができているかどうかわからない場合は、いつでも予行演習を行うことができgit push origin master --dry-run、変更は実際にはプッシュされません。

于 2013-03-12T21:38:33.487 に答える