remote A
にrepo B
を追加して、git fetch A
を実行しました。フェッチを元に戻すにはどうすればよいですか? remote A
:git remote remove A1
を削除すると、フェッチが取り消されますか?
$ git remote add A path/to/A
$ git fetch A
上記は私が実行するコマンドなので、すべてのブランチをrepo B
にフェッチしましたが、repo A
から特定のブランチを1つだけ必要とし、repo B
の特定のフォルダーに移動する必要がありますが、それは別の話です 2つのdfferent gitリポジトリ間でコードをマージ 。
このリモートを削除するだけで、allリモートA
からのフェッチを取り消すことができます。
git remote remove A
もう一度追加して、単一のブランチのみをフェッチします。
git remote add A <path/to/repository>
git fetch A <name of branch>
torekからの回答が本当に好きでしたが、「reflogsを更新する」コマンドを提供していません。これはまさに私が探していたものです。私はこれを他の答えで見つけました git fetchを逆にする なので、他の検索を簡単にするためにここに置いておきます。
Origin
リモートがあり、ローカルdevelop
ブランチがmaster
に基づいているが、ローカルmaster
がOrigin/master
( が、まだ表示されていません、Origin
をまだ取得していないため)。
したがって、git fetch
を実行すると、Origin/master
からの新しいコミットとタグがローカルリポジトリに追加されます。場合によっては、seeをまったく使用したくない場合があり、履歴の可読性が低下します。
そうは言っても、次のようにしてgit fetch
を「元に戻す」ことができます。
git update-ref refs/remotes/Origin/master refs/remotes/Origin/master@{1}
これは、Origin/master
ポインターを以前の状態に変更するだけです。正確な状態を取得するには、{n}
を少し試してみる必要があるかもしれませんが、一般的には役に立つかもしれません。
次のコマンドを使用して、誤ってフェッチしたブランチを保持したくない場合は削除できます。
git update-ref -d refs/remotes/YOUR_REMOTE_NAME/BRANCH_NAME_TO_DELETE
それらが再び取得されないようにするには、指定されたブランチのみを取得するようにgit remoteを設定します:git remote set-branches YOUR_REMOTE_NAME desired_branch1 [desired_branch2, desired_branch3, etc]
、e.g。 git remote set-branches Origin master
。
Set-branchesのデフォルトの動作は、常にリストを置き換えることです。追加する場合は、--add
オプションを使用します:git remote set-branches --add Origin another_branch