2012-04-25 10 views
7

क्या दिनांक देने के लिए 'गिट लॉग' प्राप्त करना संभव है जब परिवर्तन एक दिनांक पर परिवर्तन किया गया था, तो परिवर्तन की तिथि के बजाए? 'गिट लॉग - ग्राफ़' (उदाहरण के नीचे उदाहरण छोटा हुआ आउटपुट) मुझे जो कुछ भी चाहिए, वह मुझे देता है, लेकिन यह तब भी तारीखों को प्रिंट करता है जब व्यक्तिगत परिवर्तनों को इस शाखा में विलय करने के बजाए बनाया गया था।गिट लॉग foo..bar - परिवर्तनों के लिए * मर्ज तिथियां * कैसे देखें?

* commit 7e8d68fc58b915cc17bca41be833c4f7a062cd3c 
|\ Merge: 1b4f10d af0dcdd 
| | Date: Wed Apr 25 17:40:16 2012 +0100 
| |  Merge branch 'foo' 
| * commit af0dcdd078197a852fcfad11c5111aa11579aa05 
| | Date: Wed Apr 25 17:36:50 2012 +0100 
| |  t2: adding lorem ipsum again 
| * commit 569f5de0eb40cbf198771812f9b099cf71b5b056 
| | Date: Wed Apr 25 17:36:36 2012 +0100 
| |  t1: adding lorem ipsum 
* | commit 1b4f10d3eea7c9c6304f7b1fd41818b932e4dad0 
| | Date: Wed Apr 25 17:38:24 2012 +0100 
| |  t4: fi fo fa fum x 2 
* | commit d25fa0359fbe655b6a4adeb6225ac283b3543ece 
|/ Date: Wed Apr 25 17:38:10 2012 +0100 
|  t3: fi fo fa fum 
* commit d3239b3e327f740fc7194ecf164538361f715ab5 
    Date: Wed Apr 25 17:34:50 2012 +0100 

उपरोक्त में आउटपुट master शाखा से है। टी 1 और टी 2 foo शाखा पर बनाए गए थे; टी 3 & टी 4 bar पर बनाए गए थे। फिर bar को master में विलय कर दिया गया और उसके बाद foo को मास्टर में विलय कर दिया गया।

उत्तर

4

आप उत्तर का हिस्सा देख सकते हैं: जब शाखा foo को master में विलय कर दिया गया था, तो उसने दो माता-पिता के साथ एक नई प्रतिबद्धता (7e8d68) बनाई।

लेकिन जब barmaster में विलय हो गया है, यह एक तेजी से आगे मर्ज था। यही है, bar पर सभी काम master पर नवीनतम काम से नए थे, इसलिए उन्हें अंत में ही सामना किया जा सकता था।

यह एक आसान लेआउट बनाता है, और इसलिए यह डिफ़ॉल्ट व्यवहार है। लेकिन यह विलय का कोई रिकॉर्ड नहीं छोड़ता है - जहां तक ​​आपका इतिहास संबंधित है, ऐसा लगता है कि उन लोगों की तरह पहली जगह master पर की गई थी।

इसके आस-पास पहुंचने के लिए, तेजी से आगे विलय से बचने के लिए गिट को बताना संभव है: यानी, प्रत्येक एकल विलय के परिणामस्वरूप दो माता-पिता के साथ विलय हो सकता है, भले ही एक फास्ट-फॉरवर्ड विलय संभव हो। ऐसा करने के लिए, git merge कमांड पर --no-ff ध्वज का उपयोग करें।

दुर्भाग्य से, क्योंकि उस से व्यवहार विलय नहीं बल्कि में बदलाव व्यवहार प्रवेश करने है, तो आप नहीं पूर्वव्यापी प्रभाव से यह करने के लिए सक्षम हो जाएगा - अपने पिछले तेजी से आगे मर्ज के अस्तित्व में नहीं है से जानकारी है, तो वहाँ इसे प्रदर्शित करने के लिए git log प्राप्त करने का कोई तरीका नहीं है।

+0

धन्यवाद! मुझे लगता है कि मुझे इसे समझने के लिए सिर्फ '--graph' दृश्य का उपयोग करना होगा ... –

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