8

Githubでリポジトリをフォークしました。さて、オリジナルにはいくつかの更新がありました。元のリポジトリから変更をプルして同期を維持するにはどうすればよいですか?

また、ソースが元のソースと競合している場合、手動で編集する機会はありますか?

編集1:みんなの助けに感謝します。私はRTFMする必要があると思います:)

4

4 に答える 4

9

他の2つの回答で明示的に述べられていないのは、githubの元のプロジェクトからgithubのフォークに直接マージすることはできないということです。自分のマシンで、ローカルクローンを経由する必要があります。

したがって、元のプロジェクトをリモートとして設定し(upstreamMagnus SkogとCJlanoの回答で呼び出されます)、そのリモートからローカルクローンにプルし、ローカルの変更とのマージの競合を解決して、結果をgithubのフォークにプッシュします。

于 2012-07-25T11:44:01.897 に答える
7

元のリポジトリをリモートとして追加し、そこから変更をプルするだけです

git remote add upstream path/to/upstream/repo.git
git pull upstream master
于 2012-07-25T11:42:52.427 に答える
6

参照:https ://help.github.com/articles/fork-a-repo

アップストリームの変更をプルイン

プロジェクトをフォークした元のリポジトリが更新された場合は、次のコードを実行して、それらの更新をフォークに追加できます。

git fetch upstream
# Fetches any new changes from the original repo
git merge upstream/master
# Merges any changes fetched into your working files
于 2012-07-25T09:06:21.467 に答える
1

「フォークの同期」に関するgithubのドキュメントを参照してください

https://help.github.com/articles/syncing-a-fork

  1. 同期する前に、アップストリームリポジトリを指すリモートを追加する必要があります。最初にフォークしたときにこれを行った可能性があります。
  2. リポジトリをアップストリームと同期するには、2つの手順が必要です。最初にリモートからフェッチする必要があり、次に目的のブランチをローカルブランチにマージする必要があります。
  3. リモートリポジトリからフェッチすると、そのブランチとそれぞれのコミットが取り込まれます。これらは、特別なブランチの下のローカルリポジトリに保存されます。これで、アップストリームのマスターブランチがローカルブランチのアップストリーム/マスターに保存されました。
  4. アップストリームリポジトリをフェッチしたので、その変更をローカルブランチにマージします。これにより、ローカルの変更を失うことなく、そのブランチをアップストリームと同期させることができます。ローカルブランチに一意のコミットがなかった場合、gitは代わりに「早送り」を実行します

追伸:フォークを同期すると、リポジトリのローカルコピーのみが更新されます。GitHubのリポジトリは更新されません。

詩2:各ステップの実際のコードは、最初に貼り付けられたリンクにあります。

于 2013-06-27T07:40:29.163 に答える