2013-09-26 4 views
5

पर एक गिट रेपो का स्नैपशॉट प्राप्त करें कहें कि मेरे पास कई शाखाओं के साथ एक रेपो है।किसी विशेष दिनांक

क्या सामान्य गिट फू का उपयोग करके किसी विशेष दिनांक/समय का रेपो स्नैपशॉट प्राप्त करना संभव है? (वर्तमान में हम कोड हर दिन उदासीनता है, और मुझे लगता है कि उसे निकालने के तरीके की सोच रहा हूँ)

(स्थायी रूप से नष्ट हो जाती हैं कोई शाखाओं मानते हुए, और Git प्रतिबद्ध इतिहास के साथ खेला नहीं किया गया है)

संपादित करें: अंतरिम शाखा विलय संभव है।

उत्तर

6

@{<date>} से सावधान रहें, रिफ्लॉग (जिसका अर्थ है, डिफ़ॉल्ट रूप से 90 दिनों तक सीमित है) के आधार पर।
git rev-parse में "Specifying Revisions" देखें।

git checkout `git rev-list -n 1 --before="2013-09-25 5:00" master` 

नोट this warning though:

rev-list अगर आप किसी भी शाखाओं का विलय कर दिया है काम नहीं करेगा

"git checkout by date" एक और तरीका पता चलता है।
उदाहरण के लिए: मैं V5 शाखा पर वापस जाना चाहता था लेकिन V4.2 शाखा में समाप्त हुआ।

एक और अधिक मजबूत तरीका --first-parent जोड़ने के लिए होगा:

git checkout `git rev-list -n 1 --first-parent --before="2013-09-25 5:00" master` 
+0

शाखा का आपस में विलय संभव हो रहे हैं। सवाल संपादित किया है। –

+1

@ ansh0l I * बस * उस पते पर मेरा जवाब संपादित किया। – VonC

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