したい削除ファイルは"旧モード100755新しいモード100644"からunstaged変Git?

StackOverflow https://stackoverflow.com/questions/1257592

  •  12-09-2019
  •  | 
  •  

質問

何らかの理由で私が最初っから引のリポジトリのためのgitプロジェクトの鉱山 俺はトンファイルを一緒にそれをコピーして認識できる変更は、さま、ありがとうございました撮影中に体調不良を訴っ unstaged changes ます。

を使用していGit Gui Windows xp*環境で、行った時に、ファイルに変更しました。すべての私見です:

old mode 100755  
new mode 100644  

なんだろうけど、日本人ようです。

方法を教えてくださいこれらのファイルのマイリストのunstaged。(あんて100以上のファイルだけを選び出してファイルって編集したいコミット).

役に立ちましたか?

解決

私にはUNIXファイルのパーミッションモードのように見えること(755 = rwxr-xr-x644 = rw-r--r--)は - 古いモードが+ X(実行)フラグを含め、新しいモードにはありません。

このmsysgit問題の回答ではfalseにcore.filemodeを設定することを示唆する問題を取り除くために:

git config core.filemode false

他のヒント

falseにcore.filemodeを設定する作業を行いますが、~/.gitconfigの設定が.git/configのもので上書きされていないことを確認します。

ディレクトリのいくつかのパーミッションを変更したようです。私はそれを復元するには、次の手順を行いました。

$  git diff > backup-diff.txt                ### in case you have some other code changes 

$  git checkout .

あなたは試みることができます gitが--hard HEADをリセット 予想されるデフォルトの状態にレポをリセットします。

あなたが引いたときにこれが起こると、すべてのファイルは、リモートリポジトリに実行しました。彼らは、実行可能再び再び正常に戻ってすべてを設定します作ります。

chmod +x <yourfile> //For one file
chmod +x folder/* // For files in a folder

あなたがする必要があるかもしれません。

chmod -x <file> // Removes execute bit

の代わりに、実行可能なように設定されていないし、それが原因で上記の動作を変更したファイルのため。そこにこれを行うには良い方法があるが、これは単に非常に迅速かつ汚い修正されます。

通常の場合、レポ-レートがクローニングWindowsとLinux/Unixます。

私gitを無視するfilemodeの変化、ここにはいくつかの方法が考えられてい:

  1. Configのみに現在のレポ-レート:

    git config core.filemode false
    
  2. Configグ:

    git config --global core.filemode false
    
  3. 追加の~/.gitconfig:

    [core]
         filemode = false
    

だけを選択します。

私は、変更権限を持つ一つだけ面倒なファイルを持っていました。 個別にロールバックするには、私はちょうどrm <file>を手動で削除してから新しいコピーを引っ張るためにチェックアウトをしました。

幸いにも、私はまだそれを上演していませんでした。

私はgit reset -- <file>を実行する前にgit checkout -- <file>を実行している可能性があった場合

マスターと私のブランチを差分の時は

私はこの問題に走りました。私は私の枝がマスターと同一であることが予想されるとき、Gitは1「モード」エラーを返しました。私は、ファイルを削除し、再度マスターをマージすることにより、固定ます。

まず私は差分を走っます:

git checkout my-branch
git diff master

これが返さます:

diff --git a/bin/script.sh b/bin/script.sh
old mode 100755
new mode 100644

私はその後、修正するために、以下を実行します:

rm bin/script.sh
git merge -X theirs master

この後、git diffは私の分岐とマスターの間には違いが返されません。

あなたは戻ってファイルモードを変更するには、次のコマンドを使用することができます。 git add --chmod=+x -- filename そして、ブランチにコミットします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top