2011-11-22 79 views
4

我和我的朋友選擇使用git和GitHub在項目上進行協作。我們都很新。配置文件已經在遠程git倉庫中。想要取消但不刪除。怎麼樣?

我的朋友用他包含的項目配置文件版本初步提交了我們的項目文件。我的配置文件將會不同。我們不希望來回發送這些文件的更改。

我已經發布git initgit pull [email protected]:my_friend/our_repository.git master將我們的項目文件放到我的開發服務器上。

然後我創建了一個.gitignore文件在項目的根我的dev的服務器(這裏我做git init):

# this is .gitignore in the project's root directory 
index.php 
config/some_config_file.php 
config/another_config_file.php 

由於這些配置文件已經在倉庫中,在.gitignore這些線路不會做任何事。我明白這一點。其他SO答案已經建議這些命令:

git rm --cached index.php 
git rm --cached config/some_config_file.php 
git rm --cached config/another_config_file.php 
git commit -m "hope this works" 
git push 

這個刪除這些文件在遠程GitHub的倉庫!不好。我希望這些文件保留在GitHub上,因此它不會報警我的朋友。 我只想在我的開發服務器上保留我自己的未版本的文件副本,與GitHub存儲庫中正在進行的任何操作無關。

我該如何用git實現這個設置?

回答

5

你不能這樣做,但你可以告訴git忽略對這些文件的進一步(本地)更改。嘗試:

git update-index --assume-unchanged <your_file> 
+1

謝謝!這工作很好。順便說一句,在google搜索之後,我發現'git ls-files -v | grep^[a-z]'會告訴你哪些文件已經被這樣設置。這裏有更多的信息,包括'〜/ .gitconfig'的兩個別名:http://gitready.com/intermediate/2009/02/18/temporarily-ignoring-files.html – markplindsay

+0

' - 放棄 - 不變'技術是一個好的一個,只要你意識到這些問題,比如在切換分支和合並提交文件的位置發生變化時(參見文檔)。 –

+0

@Sri:非常有效的一點!無論何時使用上游版本更新本地回購,並且該文件已更改,都必須手動處理。如果有問題的文件經常更改,這可能很煩人。 – jweyrich

3

GitHub只存儲回購中的實際內容。您無法從回購庫中刪除文件,但也可以將其保留在回購庫中。

最好的解決方案是讓你的同事知道文件已被刪除,所以他們可以保持自己的副本完好無損,只需將它們複製回工作樹(因爲它們現在將被忽略) 。

+0

非常感謝您的回答,但我認爲'--assume-unchanged'是我正在尋找的。 – markplindsay

相關問題