2012-02-10 6 views
10

अगर मैंक्या कोई गिट चेकआउट उन फ़ाइलों को हटा देगा जो वहां नहीं होना चाहिए?

#!/bin/sh 
GIT_WORK_TREE=/var/www/www.example.org git checkout -f 

तरह Git में एक के बाद recieve हुक कि फ़ाइलों को सर्वर पर लेकिन मेरे स्थानीय Git रेपो पर नहीं हैं को नष्ट करेगा की स्थापना की?

यदि ऐसा होगा, तो क्या इसे रोकने का कोई तरीका है?

उत्तर

10

यह निर्भर करता है कि फ़ाइलों को हटा दिया जाएगा यदि वे पहले से ही चेकआउट से पहले भंडार में मौजूद थे।

यदि सर्वर (/var/www/www.example.org) पर मौजूद फ़ाइलें सर्वर पर रेपो में ट्रैक की जाती हैं लेकिन नए चेकआउट में एक परिवर्तन शामिल होता है जो उन्हें हटा देता है तो उन्हें सर्वर पर हटा दिया जाएगा पक्ष।

यदि सर्वर पर मौजूद फ़ाइलों को सर्वर पर रेपो में ट्रैक नहीं किया जाता है तो वे रहेंगे। चूंकि गिट उनके बारे में नहीं जानता है गिट उन्हें हटा नहीं देगा।

यह बताने के लिए कि क्या वे सर्वर पर ट्रैक किए गए हैं, आप git status <file in question> कर सकते हैं। यदि यह कहता है:

# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
#  <file in question> 

तब आप जानते हैं कि एक चेकआउट नहीं हटाया जाएगा।

अगर बाद में चेकआउट से हटाए गए अगले चेकआउट की तुलना में नए चेकआउट में मौजूद है तो बस ध्यान दें।

+0

आप गिट का बहुत उपयोग करते हैं? (एसवीएन/Mercurial के विपरीत) – Pacerier

संबंधित मुद्दे