यदि आप gitk --all
का उपयोग करते हैं, तो आप सभी शाखाओं से अपने रेपो के सभी काम देख सकते हैं। मुझे ऐसा कुछ चाहिए जो केवल किसी दिए गए प्रतिबद्धता के वंशजों को छोड़कर।मैं गिट (या गिटक) के साथ प्रतिबद्धता के सभी वंशजों को कैसे प्राप्त/सूची/देख सकता हूं?
उत्तर
एक प्रतिबद्धता केवल अपने माता-पिता (और इसलिए सभी तरह से) के बारे में जानता है लेकिन उसके बच्चों/वंशजों के बारे में कोई जानकारी नहीं है। आपको इसे खोजने के लिए ए..बी जैसे नोटेशन का उपयोग करना होगा।
उदाहरण के लिएआप के बाद से दिए गए एक प्रतिबद्ध, आप कर सकते हैं कुछ इस तरह वर्तमान शाखा में प्रतिबद्ध खोजना चाहते हैं:
git rev-list A..
'gitk --all' किसी भी तरह काम करना चाहिए। ऐसा लगता है कि कम से कम इसे पहले 'gitk --all' पर कोड करना संभव है और फिर प्रत्येक प्रतिबद्धता को छोड़ दें जिसके पास उसके माता-पिता के रूप में कोई प्रतिबद्धता नहीं है। – Pistos
मुझे लगता है कि यह है कि तुम क्या चाहते हो सकता है। सभी शाखाओं में सभी कमिट, है कि एक के रूप में पूर्वज:
gitk --all --ancestry-path A..
संक्षेप में:
git log --all BRANCH~1..
विस्तार में, उदाहरण के साथ:
: यह मैं अभी बनाया भंडार की पूरी पेड़ है$ git log --graph --oneline --decorate --all
* e3972be (HEAD, a) a-6
* 2707d79 a-5
* cdea9a7 a-4
| * 65b716e (c) c-5
| * ebe2a0e c-4
|/
| * 2ed9abe (b) b-4
|/
* ace558e (master) 3
* 20db61f 2
* 3923af1 1
--all
के अलावा
, एक और बात स्पष्ट है: master
->HEAD
:
$ git log --graph --oneline --decorate master..
* e3972be (HEAD, a) a-6
* 2707d79 a-5
* cdea9a7 a-4
तो मैं उन्हें संयोजन की कोशिश की है, और यह मुझे लगभग मिला है कि हम क्या चाहते थे:
$ git log --graph --oneline --decorate --all master..
* e3972be (HEAD, a) a-6
* 2707d79 a-5
* cdea9a7 a-4
* 65b716e (c) c-5
* ebe2a0e c-4
* 2ed9abe (b) b-4
लेकिन दुर्भाग्य से, यह शाखाओं के बीच संबंधों को प्रदर्शित नहीं करता है, शाखा के बाद से हम पूछ रहे हैं के बारे में छोड़ दिया गया था। इसलिए हम तो जैसे master
के माता पिता से लॉग का उपयोग करने के लिए है:
$ git log --graph --oneline --decorate --all master~1..
* e3972be (HEAD, a) a-6
* 2707d79 a-5
* cdea9a7 a-4
| * 65b716e (c) c-5
| * ebe2a0e c-4
|/
| * 2ed9abe (b) b-4
|/
* ace558e (master) 3
टा-दा! (मुझे नहीं पता कि यह अतीत में काम नहीं करता है, लेकिन बस मामले में: मैं गिट संस्करण 1.7.1 पर हूं)
संपादित करें 2017-11-17 - वास्तव में एसटीडब्ल्यू के लिए धन्यवाद इस के साथ समस्या दिखा रहा है: स्वतंत्र पेड़ इसे गड़बड़ कर देगा। master
से पूरी तरह स्वतंत्र हैं जो इस आउटपुट में शामिल किए जाएंगे।
$ git checkout --orphan z
Switched to a new branch 'z'
$ git commit --allow-empty -m'z-1'
[z (root-commit) bc0c0bb] z-1
$ git commit --allow-empty -m'z-2'
[z 1183713] z-2
$ git log --graph --oneline --decorate --all master~1..
* 1183713 (HEAD -> z) z-2
* bc0c0bb z-1
* 6069f73 (a) a-6
* 654d106 a-5
* a218c59 a-4
| * 338432a (c) c-5
| * 2115318 c-4
|/
| * 43a34dc (b) b-4
|/
* ce05471 (master) 3
z
शाखा, एक अनाथ के रूप में बनाया जा रहा है, master
साथ कोई आम का इतिहास रहा है, इसलिए z-1
और z-2
बाहर रखा गया है चाहिए: ऊपर रेपो की एक प्रति से शुरू, यह क्या मेरा आखिरी आदेश उत्पादन होता है लेकिन नहीं थे। यह --ancestry-path
है, अब मुझे मिलता है।भी शामिल है यह शाखा z
को बाहर निकाल देगा:
$ git log --graph --oneline --decorate --all --ancestry-path master~1..
* 6069f73 (a) a-6
* 654d106 a-5
* a218c59 a-4
| * 338432a (c) c-5
| * 2115318 c-4
|/
| * 43a34dc (b) b-4
|/
* ce05471 (master) 3
पूर्णता के लिए, यहां तक कि यह देखते हुए कि यह पहले से ही --ancestry-path
था, वर्तमान शीर्ष जवाब सही ढंग से शाखा संबंध प्रदर्शित नहीं करता है, क्योंकि यह शामिल नहीं master
पर ही प्रतिबद्ध:
$ git log --graph --oneline --decorate --all --ancestry-path master..
* 6069f73 (a) a-6
* 654d106 a-5
* a218c59 a-4
* 338432a (c) c-5
* 2115318 c-4
* 43a34dc (b) b-4
मैंने इस बदलाव के साथ झुकाव करने की कोशिश की, लेकिन ऐसा लगता है कि मैं जो चाहता हूं उसे दिखाता हूं [गिट के साथ]। उदाहरण के लिए, मान लें कि आपने मध्यस्थ बाल शाखा बनाई है, और वहां से 3 पोते-पोतों की शाखाएं बनाई गई हैं। शाखाओं के उस परिवार के लिए गिटक दिखाने का तरीका क्या होगा, और कोई भी मास्टर, या कुछ और नहीं? – Pistos
@Pistos तो उपर्युक्त का उपयोग करते हुए, मुझे 'gitk' में 'log' के रूप में एक ही आउटपुट मिलता है जब मैं' gitk --all master..' का उपयोग करता हूं (जैसा कि 'गिट लॉग --all मास्टर ~ 1.. के विपरीत है - तो, मास्टर के अलावा किसी अन्य शाखा का उपयोग करने के लिए, 'gitk --all branchname..' (दो बिंदुओं को शामिल करें) – Izkata
@ पिस्टोस I को अब भी ध्यान दें कि मेरी टिप्पणी लगभग जेएसवीएनएम के उत्तर के समान ही समाप्त हो गई है, सिवाय इसके कि मैं' टी - कोनेस्ट्री-पथ 'को समझ में नहीं आता है और यह आवश्यक क्यों होगा – Izkata
- 1. मैं केवल प्रत्यक्ष वंशजों के लिए कैसे पूछ सकता हूं?
- 2. मैं गिट में एक प्रतिबद्धता कैसे उलटा सकता हूं?
- 3. मैं तत्वों के सभी वंशजों को एक सीएसएस नियम कैसे लागू कर सकता हूं
- 4. मैं गिट में एक पुरानी प्रतिबद्धता कैसे कर सकता हूं?
- 5. गिट: मैं किसी दिए गए प्रतिबद्धता में मौजूद सभी फाइलों को कैसे सूचीबद्ध कर सकता हूं?
- 6. मैं गिट में किसी प्रतिबद्धता के विशिष्ट हंक को कैसे उलटा सकता हूं?
- 7. मैं गिट के MERGE_MSG को कैसे हटा सकता हूं?
- 8. मैं गिट में प्रतिबद्धता तिथि के साथ कैसे स्क्वैश करता हूं जो अतीत में नहीं है?
- 9. मैं अप्रशिक्षित गिट को कैसे हटा सकता हूं?
- 10. मैं अपनी शाखा को गिट के साथ मास्टर के साथ अद्यतित कैसे रख सकता हूं?
- 11. मैं गिट नंगे भंडार में आखिरी प्रतिबद्धता को कैसे समाप्त कर सकता हूं?
- 12. मैं गिट में एक अनाम शाखा में एक प्रतिबद्धता कैसे प्राप्त कर सकता हूं?
- 13. मैं एक फाइल को कैसे देख सकता हूं क्योंकि यह किसी विशेष गिट प्रतिबद्धता पर था?
- 14. गिट: मैं सर्वर की प्रतिबद्धता को कैसे संशोधित कर सकता हूं?
- 15. मैं अपने सभी वंशजों के बजाय, केवल एक एक्सडोकॉल के बच्चों को कैसे खोजूं?
- 16. क्या मैं गिट रेपो से आरंभिक प्रतिबद्धता को हटा सकता हूं?
- 17. मैं 'प्रतिबद्धता के लिए चरणबद्ध नहीं किए गए परिवर्तन' को कैसे हटा सकता हूं? Git में
- 18. गिट के साथ परियोजना की पहली प्रतिबद्धता बदलें?
- 19. गिटक को केवल स्थानीय शाखाओं को दिखाने के लिए कैसे?
- 20. गिट वसा प्रतिबद्धता
- 21. मैं गिट टैग कैसे कर सकता हूं?
- 22. मैं पिछली एसवीएन प्रतिबद्धता पर वापस कैसे लौट सकता हूं?
- 23. क्या मैं वंशजों को पैरामीटर रहित कन्स्ट्रक्टर रखने के लिए मजबूर कर सकता हूं?
- 24. मैं गिट के साथ सीवीएस निर्देशिकाओं को कैसे नजरअंदाज करूं?
- 25. एनपीएम के साथ गिट पर एक परियोजना में मैं नोड.जेएस निर्भरताओं को कैसे संभाल सकता हूं?
- 26. गिट के तहत फाइलें करते समय मैं नाम बदलें सीमा को कैसे नियंत्रित कर सकता हूं?
- 27. मैं पुल --rebase कैसे गिट कर सकता हूं लेकिन सभी रिमोट बदलाव ले सकता हूं?
- 28. मैं एक गिट प्रतिबद्ध को पहले के बिना कैसे दबा सकता हूं?
- 29. सभी काम करने के लिए मैं एक गिट रेपो में निर्देशिका कैसे स्थानांतरित कर सकता हूं?
- 30. मैं गिट-सबट्री का उपयोग करके एक विशिष्ट प्रतिबद्धता पर कैसे जा सकता हूं?
हालांकि मैनोजल्ड्स की पहली वाक्य सही है, यह पूरी सच्चाई नहीं है: यह देखने के लिए कुछ ऐसा करना संभव होगा कि प्रत्येक रेफरी को अपने पूर्वजों में दी गई प्रतिबद्धता है या फिर उन रेफरी से इतिहास प्रदर्शित करें। – Cascabel
संभावित डुप्लिकेट [किसी दिए गए प्रतिबद्धता के सभी बच्चों की सूची प्राप्त करना] (http://stackoverflow.com/questions/2613935/getting-a-list-of-all-children-of-a-given-commit) – jthill