git rebase origin
との違いがわかりませんgit rebase origin/master
。私の場合、gitリポジトリのクローンを2回作成しました。最初のクローンでは使用git rebase origin
する必要があり、他のクローンでは使用する必要がありますgit rebase origin/master
。
3 に答える
git rebase origin
「の追跡ブランチからのリベースorigin
」をgit rebase origin/master
意味し、「のブランチからのリベース」をmaster
意味しますorigin
にトラッキングブランチが必要です。これは、リベースするブランチを認識していること~/Desktop/test
を意味します。追跡ブランチが存在しない場合(の場合)、gitはそのブランチのどのブランチを取る必要があるかを認識せず、失敗します。git rebase origin
origin
~/Desktop/fallstudie
origin
これを修正するには、次のコマンドでブランチトラックを作成origin/master
します。
git branch --set-upstream-to=origin/master
または、master
現在チェックアウトされているブランチでない場合:
git branch --set-upstream-to=origin/master master
より良いオプションは次のとおりです。
git remote set-head -a origin
ドキュメントから:
-aを使用すると、リモートが照会されてHEADが決定され、$ GIT_DIR / remotes//HEADが同じブランチに設定されます。たとえば、リモートHEADがnextを指している場合、「git remote set-head origin -a」は、$ GIT_DIR / refs / remotes / origin/HEADをrefs/remotes / origin/nextに設定します。これは、refs / remotes / origin/nextがすでに存在する場合にのみ機能します。そうでない場合は、最初にフェッチする必要があります。
これは実際にはかなり前からあります(v1.6.3以降)。どうして見逃したのかわからない!
[.git \ refs \ remotes \ origin]の下に「HEAD」という名前の新しいファイルを作成し、そのファイルに「ref:refs / remotes / origin/master」というコンテンツを配置できます。これで問題が解決するはずです。
空のリポジトリからのクローンがこれにつながるようです。コミットオブジェクトが存在しないため、空のリポジトリにHEADがない可能性があります。
あなたは使用することができます
git log --remotes --branches --oneline --decorate
各リポジトリの違いを確認しますが、「問題」のリポジトリには「origin/HEAD」がありません
編集:コマンドラインを使用して方法を与える
これを行うためにgitコマンドラインを使用することもできます。同じ結果になります。
git symbolic-ref refs / remotes / origin / HEAD refs / remotes / origin / master