2011-03-14 88 views
3

我有一個git問題,我覺得它可能與權限有關。情況如下:我有兩個分支,'主'和'主題'。有問題的文件被稱爲'settings.php',它具有權限r - rw-rw-,列出的所有者是我自己的用戶名。我正在使用Ubuntu 10.4LTS。使用git:在一個分支中提交的更改會影響'master'

我產生以下方式問題:

  1. 結帳主題化分支
  2. 作任何改動的settings.php
  3. 添加並提交更改爲「主題化」
  4. 結帳「主'分支使用:$ git checkout master

完成上述步驟後,出現'無法取消鏈接設置.php',我注意到這個文件在master中也被修改過了。這也會發生,如果我反其道而行,即。我在主文件中進行更改,提交更改並檢出主題。然後它不會讓我回到之前的分支,因爲有更改要提交。

我知道避免遇到這個問題的唯一方法是使用$ sudo checkout [branchname]。這暫時避免了這個問題,但是如果我使用沒有sudo的checkout,我又會遇到同樣的事情,我不得不擔心撤消當前分支中的所有更改。

有誰知道如何解決這個問題?我環顧四周,發現與解除鏈接有關的問題,但沒有人喜歡我的鏈接。

+0

什麼是目錄權限?你可以寫入目錄嗎?顯然,取消鏈接需要目錄寫入權限。 – igorw 2011-03-14 14:22:58

+0

請不要只爲每個權限問題嘗試* sudo *。正常的Git使用不需要* sudo *。如果您在個人存儲庫中工作,那麼您應該擁有所有您需要的權限。如果權限錯誤,您應該修復它們而不是訴諸以root身份運行隨機命令(這實際上可能會導致權限問題)。 – 2011-03-15 03:14:02

回答

0

這是Daniel M的一個新名字。首先,文件權限實際上是rw-rw-r--。其次,igorw的評論非常有幫助。我沒有父目錄的寫權限。一旦我添加了這個,我的問題就消失了。

+0

請[merge](http://meta.stackexchange.com/questions/18232/how-can-one-link-merge-combine-associate-two-accounts-users-anonymous-unregiste/73801#73801)您的帳戶([Daniel M](http://stackoverflow.com/users/658933/daniel-m)和[Paragon](http://stackoverflow.com/users/659816/paragon))。 – 2011-03-15 03:19:25

3

你不應該首先將它作爲根檢查出來。嘗試更改存儲庫的權限回你:

# chown -R yourname ~/path/to/your/gitrepo 

如果需要使用共享存儲庫,檢查出「git的初始化」手冊的--shared國旗。或者有很多谷歌點擊的組設置,讓你正確地分享回購,但它是依賴於版本,所以我不會在這裏重述所有。設置,你可能找如果是這樣,這是一個:

[core]   
sharedrepository = 0660 

(然後chgrp命令-r在目錄中的目錄和chmod G + S以及)

0

爲什麼文件有問題只讀爲所有者?切換分支時,Git不允許重寫內容或替換它。

相關問題