2016-09-23 7 views
3

git checkoutコマンドで問題が発生しました。助けてください。git checkoutエラー:ディレクトリを作成できません:権限が拒否されました(Bitbucket)

ここに私がしたことがあります。

  1. ローカルディレクトリを作成しました。いくつかのファイルを作成しました。ローカルでgit repoを開始しました。
  2. は私がしようとしています、B01に新しいファイルを追加しましたそれらをコミットし、成功した今
  3. をのBitbucketするブランチをプッシュB01ビットバケット&にレポを作成し
  4. は、
  5. ローカルに新しいブランチを作成したののBitbucketするために私の地元のレポをプッシュb01とmasterをマージし、それが私が問題に直面しているところです。私はマスターをチェックアウトすることができません。使用するコマンドおよびエラーの詳細の

リスト:

git clone [my repo] 
git checkout -b b01 

今後私は、新しいファイルやディレクトリを作成するなど、複数の変更を、作っそれらの変更をコミットし、成功したレポにその枝の変更をプッシュ。 like:

git push -u origin b01 

これで変更を完了し、マスターブランチにマージします。ここで

git checkout master 

それがスローエラーです:だから私はやる

fatal: cannot create directory at 'workfolder': Permission denied 

GitはB01で私を保持しますが、は、私はブランチで作成したすべてのファイルを削除します。 だから私は今

git status 

をすれば、それは私を示しています

On branch b01 
Your branch is upto date with 'orgin/b01' 
Changes not staged for commit: 
(use "git add/rm .....) 
    deleted: new file1 
    deleted: new file2 
<list of the new files I had added but which got deleted as a result of the command> 

を私は

git checkout -- . 

ファイルを復元するために実行するために抱えています。

助けてください。

+0

管理者権限でGit Bashを実行しましたか?これは、フォルダを作成する権限がないように聞こえます。他のものはこれの副作用かもしれません。 –

+0

私はWindowsマシンを使用しています。私はマシンの管理者です。 @TimBiegeleisen – Ritwik

+0

更新:何が間違っていたのか分かりませんが、2番目のgit bashウィンドウが開き、2番目のウィンドウが表示されました。私は何も変えなかった。私は物事を混乱させるために何をしたのか誰かが理解できるかどうかを知るためにこの質問を開いたままにしています。 – Ritwik

答えて

1

まず、gitを使用するたびに、git statusをすばやく実行することをおすすめします。これが何度も頭痛を救ったことは何回も言えません。

私は問題(複数可)にいくつかの光を当てることを試みるかもしれない物事のカップル:

  1. あなたはディレクトリを作成し、原点にそれを押した後、B01への変更の多くを作りました。このアクション `git showのコミットを見てください。 "workfolder"の親ディレクトリのアクセス権を変更しましたか? This might be of help

  2. 窓がありますか?あなたがいるなら、ディレクトリパスの深さはどれくらいですか?パスの長さがウィンドウを最大に超えていますか? Reference here

  3. これらのどれも動作しない場合は、b01の使い捨てブランチを作成し、 "master"をマージしてみましたか?これは時々原因を吐き出す。

  4. 醜い雹 - メアリー。リポジトリの外側で "b01"のコピー/ペーストを試した後、 "master"の最後のコミットにロールバックしてから、 "b01"コピーの変更をマスターに貼り付けましたか?物事が全く逆さになって意味をなさない場合は、何が間違っているのかを把握し、今後何ができないかを知るために、問題を逆向きに処理する方が簡単な場合もあります。

+0

1.私は窓に乗っていますが、パーマは変更されていません。 (2)パスの長さは現在、スペースを含む97文字です。だから問題ではないはずです(3)どうすればいいですか?ブランチb01からブランチb01aを作成してから、b01をmasterにb01の代わりにmasterにマージすることを意味しますか? (4)これを試していない。私はこれが手作業のプロセスであると信じています。上記のいずれにも該当しない場合にのみ試みます。このアイデアをどうやって混乱させたのですか? – Ritwik

1

私は同様の状況がありました。それは私がVisual Studioでソリューションを開いていることによるものですが。ビジュアルスタジオを閉じてgit reset -hardを実行する(あなたが仕事を失うことを心配していない場合のみ)、私を良い場所に入れてください。

+0

私はビジュアルスタジオとコードの両方を開いていました。そのうちの1人がファイルロックを維持していなければなりません。彼らが両方とも閉じれば、 'git checkout foo-branch'が私のために働いた。 –

関連する問題