26

私はここで、これまで遭遇したことのない奇妙な問題に直面している開発者と協力しています。彼はリポジトリに取り組んでおり、プッシュする前に他の誰かから最新の変更をプルする必要があります。彼の変更はすべてコミットされています。

$ git pull
Cannot pull with rebase: You have unstaged changes.
Please commit or stash them.

までは十分に合理的だと思われます...

$ git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 3 and 1 different commit each, respectively.
#
nothing to commit (working directory clean)

何だって?

引っ張る前に試しましgit reset --hard HEADたが、引っ張ることができません。

これを見ているのは1人だけで、Mac(OSX 10.6.8)を使用しています。何か案は?髪を抜こうとしています。

4

6 に答える 6

25

それ以外の

git pull

試す

git fetch
git rebase -p origin/master

それがうまくいかない場合は、試すことができます

git pull --no-rebase

このメッセージが表示される理由を確認する方法

離れた頭ではなく、枝にいることを確認してください。リベースは、取り外したヘッドでは機能しません。

次のコマンドを実行すると、結果は出力されないはずです。

git update-index -q --ignore-submodules --refresh
git diff-files --ignore-submodules
git diff-index --cached --ignore-submodules HEAD --
于 2012-12-04T01:16:37.933 に答える
9

ローカルファイルシステムまたはnfs共有で作業していますか?

nfs共有に取り組んでいたときもまったく同じ問題がありました。

コマンドにnoatimeオプションを追加しましたが、次のようになりました。mount

mount -t nfs -o noatime,... device dir
于 2013-05-22T09:10:49.267 に答える
1

私にとっての問題は、安全なフォルダ内のファイルにありました

  1. このコマンドのみが、ステージングされていないファイルがあることを示しています

    git diff-files --ignore-submodules
    
  2. 作業ツリーでgit-cryptファイルを構成解除してファイルを再暗号化します

    git-crypt lock
    
于 2019-07-15T13:42:07.207 に答える
0

$ git stashを試してから、gitpullを試してください。

于 2013-09-05T07:04:24.020 に答える
0

rootが所有するリポジトリをリベースしようとしたときにこの問題が発生しました(そして私は非特権ユーザーでした)。

于 2020-04-13T10:32:32.287 に答える
-1

リベースが進行中のようです。最初に実行してみてくださいgit rebase --abort

ローカルを一掃するためのより強力な方法には、

  • 作業ディレクトリ内のすべてのファイルを削除します(もちろん、.gitディレクトリを除く)

  • git clean -d -x -f-d:ディレクトリ、-x:無視されたファイル、-f:強制。ドライランの場合-f-nに置き換えます)

そして、とでフォローアップしgit reset --hardますgit checkout

もう1つの考えは、git reset --hard HEAD~N-つまり、コミットの数をリセットして、プルが機能し、ローカルを早送りすることを期待することです。

于 2012-12-03T21:58:55.337 に答える