2017-09-26 59 views
1

背景

我是新來的git,和我測試它作爲一個版本控制未在GitHub上託管的網站。我已將public_html作爲git回購,並在public_html之外創建了一個裸回購,我將所有提交和標籤推送到該回購。我的目標是能夠標記我對網站所做的更改,並且可以根據需要快速恢復到以前的版本。到目前爲止,在我的測試中,我通過使用resetcheckout後跟標記名稱可以完成此操作,以返回到以前的版本。麻煩恢復到以前的標籤GIT

的問題

我遇到問題時,我作出這樣的涉及從以前的標籤移除文件的新版本的標籤。如果我嘗試reset至或checkout以前的文件曾經存在和正常運行的標記,則訪問這些頁面的請求將返回「內部服務器錯誤」。我知道這些文件存在,因爲我看到它們重新出現在public_html文件夾中(如刷新cPanel或filezilla時看到的那樣)。如果我下載這些文件,請將我的網站上的git完全刪除,然後將它們添加回public_html文件夾,它們工作正常,表明文件未被修改或損壞。此外,當在文件確實被刪除的標籤處,我得到了「找不到頁面」的結果。

這是常見問題?任何提示,建議或解決方法將不勝感激。

更新1

基於@VonC的一種建議,我已經試過

  1. 通過設置core.autocrlfFALSE防止不必要的EOL變化。運動git clean

不幸的是,這些建議並未解決問題。我也確定這個問題發生在PHP文件中,但不是HTML。我一直在繼續閱讀,但我還沒有發現任何類似問題的報道。我希望儘快解決這個問題。目前,如果我最終刪除了文件並對其感到後悔,我將無法恢復到以前的版本,這實質上是我希望從git獲得的主要好處之一。

此外,我很好奇,如果git修改權限,但我已經檢查,他們沒有改變。

更新2

我想如果我指定的一切,我萬一有人想嘗試重現問題嘗試可能會有所幫助。

$git init --bare bare_repo.git 
$cd public_html 
$git init 
$git remote add origin ../bare_repo.git 
$git add index.html # simple testing only "hello world" 
$git add commit -m "index.html" 
$git tag -a v001 -m "v001" 
$git push origin master --tags 

現在添加在PHP文件:

$git add phpinfo.php # again for testing only, includes <?php phpinfo(); ?> 
$git add index.html #file changed to include link to phpinfo.php 
$git commit -m "phpinfo.php" 
$git tag -a v002 -m "v002" 
$git push origin master --tags 

現在,結賬v001

$git checkout v001 

的index.html返回到原點狀態,而不鏈接,的phpinfo .phppublic_html文件夾中消失。

現在,結賬v002

$git checkout v002 

的index.html恢復鏈接,phpinfo.php的重新出現在public_html

但是,當我嘗試去phpinfo.php,我得到「內部服務器錯誤或配置錯誤」頁面加載。

回答

0

嘗試更嚴格的方法來重設或結賬:

git reset --hard anOldTag 
git clean -fd 

添加git clean將HEP確保所產生的工作樹只能從SHA1(這裏是標籤)復位或檢查了包括文件。
一定要在單獨的站點測試它,以驗證它不會遠程文件太多!

+0

謝謝你回答我的問題。不幸的是,這沒有奏效。 – joe5

+0

@ joe5在服務器上鍵入後再試一次,git config --global core.autocrlf false。 (作爲運行Web服務器的帳戶完成)。在客戶端也這樣做(因爲您的帳戶在這些文件上)。再次嘗試刪除所有git,將它們添加回去。然後查看問題是否在將來結賬時仍然存在。 – VonC

+0

@ joe5是否奏效? – VonC

1

我發現問題必須在檢出或重置操作後使用GIT修改權限。它將文件從664更改爲644,從而使組編寫。雖然我考慮過許可變更,但我錯過了這種情況。這同時發生在HTML和PHP文件中,但它只是表現爲PHP文件的問題。快速搜索表明解決方案存在這個問題,所以它只是一個挑選最佳方法的問題。感謝@VonC花時間考慮我的問題。

+0

好的。 +1。 https://stackoverflow.com/a/7268608/6309或https://stackoverflow.com/a/10516406/6309可能有幫助。 – VonC