গিট 2.18 (কিউ 2 2018) --preserve-merge
একটি নতুন বিকল্প যুক্ত করে বিকল্পটিতে যথেষ্ট উন্নতি করবে ।
কমিট গ্রাফের পুরো টপোলজি অন্য কোথাও প্রতিস্থাপন করতে " git rebase
" শিখেছি " --rebase-merges
" ।
(দ্রষ্টব্য: গিট 2.22, কিউ 2 2019, প্রকৃতপক্ষে অবমূল্যায়ন করে --preserve-merge
এবং গিট 2.25, কিউ 12020, " git rebase --help
" আউটপুটে এটির বিজ্ঞাপন দেওয়া বন্ধ করে )
দেখুন 25cff9f কমিট , 7543f6f কমিট , 1131ec9 কমিট , 7ccdf65 কমিট , 537e7d6 কমিট , a9be29c কমিট , 8f6aed7 কমিট , 1644c73 কমিট , d1e8b01 কমিট , 4c68e7d কমিট , 9055e40 কমিট , cb5206e কমিট , a01c2a5 কমিট , 2f6b1d1 কমিট , কমিট bf5c057 (25 এপ্রিল 2018) দ্বারা জোহানেস Schindelin ( dscho
) ।
দেখুন কমিট f431d73 (25 এপ্রিল 2018) দ্বারা স্টিফান Beller ( stefanbeller
) ।
দেখুন কমিট 2429335 (25 এপ্রিল 2018) দ্বারা ফিলিপ কাঠ ( phillipwood
) ।
(দ্বারা একীভূত junio সি Hamano - gitster
- মধ্যে 2c18e6a কমিট , 23 মে 2018)
pull
: --rebase-merges
শাখা টোপোলজি পুনরায় তৈরি করতে গ্রহণ করুন
কমান্ডের
বিকল্পটি preserve
কেবল মোডের মতোই মোডটি কেবল --preserve-merges
বিকল্পটি পাস করে
।rebase
merges
--rebase-merges
এটি ব্যবহারকারীদেরকে নতুন করে কমিট করার সময়, তত্পরতা ছাড়াই অপ্রয়োজনীয় কমিট টোপোলজিকে সুবিধামতভাবে রিবেস করতে দেয়।
git rebase
ম্যান পৃষ্ঠাতে এখন পুরো বিভাগটি একীভূতকরণের সাথে ইতিহাস রিবেসিংকে উত্সর্গীকৃত ।
নির্যাস:
কোনও বিকাশকারী মার্জ কমিটগুলি পুনরায় তৈরি করতে চান এমন বৈধ কারণ রয়েছে: একাধিক, আন্তঃসম্পর্কিত শাখায় কাজ করার সময় শাখা কাঠামো (বা "টপোলজি প্রতিশ্রুতিবদ্ধ") রাখতে।
নিম্নলিখিত উদাহরণে, বিকাশকারী একটি বিষয় শাখায় কাজ করে যা বোতামগুলি সংজ্ঞায়িত করার উপায়ে রিফ্যাক্টর করে এবং অন্য একটি বিষয় শাখায় যে "বাগের প্রতিবেদন করুন" বোতামটি প্রয়োগ করতে সেই রিফ্যাক্টরিং ব্যবহার করে।
এর ফলাফলটি এর git log --graph --format=%s -5
মতো দেখতে পাওয়া যাবে:
* Merge branch 'report-a-bug'
|\
| * Add the feedback button
* | Merge branch 'refactor-button'
|\ \
| |/
| * Use the Button class for all buttons
| * Extract a generic Button class from the DownloadButton one
বিকাশকারী master
শাখা টোপোলজি রাখার সময় সেই নতুন প্রতিশ্রুতিগুলি পুনরায় ফিরিয়ে আনতে চাইতে পারেন , উদাহরণস্বরূপ, যখন প্রথম টপিক শাখাটি master
দ্বিতীয়টির তুলনায় অনেক আগে একীভূত হওয়ার প্রত্যাশা করা হয় , বলুন, DownloadButton
শ্রেণীর পরিবর্তনের সাথে মার্জ সংঘাতগুলি সমাধান করার জন্য
যা তৈরি হয়েছে এটি মধ্যে master
।
এই রিবেস --rebase-merges
বিকল্পটি ব্যবহার করে সম্পাদন করা যেতে পারে ।
একটি ছোট উদাহরণের জন্য 1644c73 কমিট করুন দেখুন :
rebase-helper
--make-script
: মার্জগুলি পুনরায় চালু করতে একটি পতাকা প্রবর্তন করুন
সিকোয়েন্সারটি শাখার কাঠামোটি পুনরায় তৈরি করার উদ্দেশ্যে নতুন কমান্ডগুলি শিখেছে ( একইভাবে --preserve-merges
, তবে যথেষ্ট কম ভাঙা নকশার সাথে )।
আসুন rebase--helper
নতুন --rebase-merges
বিকল্প দ্বারা ট্রিগার করে এই কমান্ডগুলি ব্যবহার করে টুডো তালিকা তৈরি করার অনুমতি দিন ।
এর মতো প্রতিশ্রুতিবদ্ধ টোপোলজির জন্য (যেখানে HEAD সি তে নির্দেশ করে):
- A - B - C (HEAD)
\ /
D
উত্পাদিত টুডু তালিকাটি দেখতে এইরকম হবে:
# branch D
pick 0123 A
label branch-point
pick 1234 D
label D
reset branch-point
pick 2345 B
merge -C 3456 D # C
এর সাথে পার্থক্য কী --preserve-merge
?
কমিট 8f6aed7 ব্যাখ্যা করে:
একসময়, এই এখানে বিকাশকারী ভেবেছিলেন: উইন্ডোজের মূল গিটের উপরের প্যাচগুলি শাখাগুলির একটি ছোট ছোট অংশ হিসাবে উপস্থাপিত করা যেতে পারে এবং গিটের শীর্ষে পুনর্বাসিত করা যেতে পারে, তবে এটি কী ভাল হবে না? প্যাচ সিরিজের চেরি-পিক'এল সেট বজায় রাখবেন?
এই উত্তর মূল প্রয়াস ছিল: git rebase --preserve-merges
।
যাইহোক, সেই পরীক্ষাকে কখনই ইন্টারেক্টিভ বিকল্প হিসাবে চিহ্নিত করা হয়নি, এবং এটি কেবল পিগি-সমর্থিত git rebase --interactive
কারণ এই আদেশটির বাস্তবায়ন ইতিমধ্যে খুব, খুব চেনা লাগছিল: এটি একই ব্যক্তি ডিজাইন করেছিলেন যিনি ডিজাইন করেছিলেন --preserve-merges
: সত্যই আপনার।
এবং "সত্যই আপনার" দ্বারা, লেখক নিজেকে উল্লেখ করেছেন: জোহানেস শিন্ডেলিন ( dscho
) , যিনি মূল কারণ (অন্য কয়েকজন নায়ক - হ্যানস, স্টিফেন, সেবাস্তিয়ান, ...) সহ যে আমাদের উইন্ডোজের জন্য গিট রয়েছে (যদিও ফিরে দিন - 2009 - যে সহজ ছিল না )। ২০১৫ সালের সেপ্টেম্বরের পর থেকে
তিনি মাইক্রোসফ্টে কাজ করছেন , যা মাইক্রোসফ্টকে এখন ভারীভাবে গিট ব্যবহার করে এবং তার পরিষেবাগুলির প্রয়োজন বিবেচনা করে তা বিবেচনা করে।
এই প্রবণতাটি ২০১৩ সালে টিএফএসের সাথে শুরু হয়েছিল । তার পর থেকে মাইক্রোসফ্ট গ্রহের বৃহত্তম গিট সংগ্রহস্থল পরিচালনা করে ! এবং, অক্টোবর 2018 সাল থেকে মাইক্রোসফ্ট গিটহাবটি অর্জন করেছে ।
আপনি এপ্রিল 2018 এ গিট মার্জ 2018 এর জন্য জোহানেসদের এই ভিডিওতে কথা বলতে পারেন ।
কিছু সময় পরে, কিছু অন্যান্য ডেভেলপার (আমি, আপনি খুঁজছেন করছি আন্দ্রিয়াস! ;-)) সিদ্ধান্ত নিয়েছে এটি একটি ভাল ধারণা করার অনুমতি হবে যে --preserve-merges
সঙ্গে মিলিত হতে পারে --interactive
(আদেশ সহকারে সঙ্গে!) এবং গীত রক্ষণাবেক্ষণকারী (অবশ্য অন্তর্বর্তী গীত রক্ষণাবেক্ষণকারী জুনিওর অনুপস্থিতির সময়, এটি সম্মত হয়েছে) এবং এটি তখনই যখন --preserve-merges
ডিজাইনের গ্ল্যামারটি বরং দ্রুত এবং unglamorously পৃথক্ভাবে পড়তে শুরু করে।
এখানে জোনাথন সুস থেকে আন্ড্রেয়াস সোয়াব সম্পর্কে কথা বলছেন ।
আপনি তাদের আলোচনার কয়েকটি 2012 সালে ফিরে দেখতে পারেন ।
কারন? ইন --preserve-merges
মোড, মার্জ বাবা (অথবা যে বিষয়টি জন্য এর কমিট কোনো কমিট) স্পষ্টভাবে বিবৃত করা হয় নি, কিন্তু সেটা
উহ্য কমিট নাম প্রেরণ দ্বারা pick
কমান্ড ।
এটি অসম্ভব করে তোলে, উদাহরণস্বরূপ, কমিটগুলি পুনরায় অর্ডার করা ।
শাখাগুলির মধ্যে কমিটগুলি সরানোর জন্য বা দেবতার বারণ, বিষয় শাখাগুলিকে দুটি ভাগে বিভক্ত করার কথা উল্লেখ করবেন না।
হায় আফসোস, এই ত্রুটিগুলি সেই মোডটি (যার মূল উদ্দেশ্য উইন্ডোজের প্রয়োজনের জন্য গিট পরিবেশন করা ছিল, অতিরিক্ত প্রত্যাশা যে এটি অন্যদের পক্ষেও কার্যকর হতে পারে) উইন্ডোজের প্রয়োজনের জন্য গিটের সেবা দেওয়া থেকে বিরত ছিল।
পাঁচ বছর পরে, যখন এটি একটি অযৌক্তিক, বড় হজ-পজ প্যাচ সিরিজের আংশিক সম্পর্কিত, আংশিকভাবে সম্পর্কিত নয় এমন প্যাচগুলি উইন্ডোজের জন্য উইন্ডোজের মূল গিটের ট্যাগগুলিতে সময়ে সময়ে পুনর্বাসিত করা হত (বিকাশকারীর অযোগ্য ক্রোধ উপার্জন করা ছিল) git-remote-hg
উইন্ডোজটির প্রতিযোগিতামূলক পদ্ধতির জন্য প্রথমে গিটকে অচল করে দেওয়া দুর্ভাগ্যজনক
সিরিজের মধ্যে পরে কেবল রক্ষণকারী ছাড়াই পরিত্যাজ্য) সত্যিই অযোগ্য ছিল, " গিট গার্ডেন শিয়ারস " জন্ম হয়েছিল : একটি স্ক্রিপ্ট, ইন্টারেক্টিভ রিবেসের শীর্ষে পিগি-ব্যাকিং, এটি প্রথমে প্যাচগুলির শাখা টপোলজিটি পুনর্বাসনের জন্য নির্ধারণ করবে, আরও সম্পাদনার জন্য একটি সিউডো টুডো তালিকা তৈরি করবে, ফলাফলকে সত্যিকারের টোডো তালিকায় রূপান্তরিত করবে (এর ভারী ব্যবহার করে)exec
নিখোঁজ টুডো তালিকা কমান্ডগুলি "প্রয়োগ" করার জন্য কমান্ড) এবং শেষ পর্যন্ত নতুন বেস কমিটের উপরে প্যাচ সিরিজটি পুনরায় তৈরি করুন।
(গিট গার্ডেন শিয়ার স্ক্রিপ্টটি প্রতিশ্রুতি 9055e40 এ এই প্যাচে উল্লেখ করা হয়েছে )
এটি ২০১৩ সালে ছিল
And এবং ডিজাইনের সাথে আসতে এবং গাছের বাইরে স্ক্রিপ্ট হিসাবে এটি প্রয়োগ করতে প্রায় তিন সপ্তাহ লেগেছিল। বলা বাহুল্য, বাস্তবায়ন স্থিতিশীল হওয়ার জন্য বেশ কয়েক বছর সময় প্রয়োজন, সমস্ত সময় ডিজাইন নিজেই নিজেকে সাউন্ড প্রমাণ করে।
এই প্যাচটির সাথে, গিট গার্ডেন শিয়েরগুলির মঙ্গলতা git
rebase -i
নিজের মধ্যে আসে । বিকল্পটি
পাস --rebase-merges
করা একটি টুডো তালিকা তৈরি করবে যা সহজেই বোঝা যায় এবং যেখানে কমিটগুলি পুনরায় অর্ডার করতে হবে তা স্পষ্ট । কমান্ড
সন্নিবেশ করানো label
এবং কল করে নতুন শাখা চালু করা যেতে পারে merge <label>
।
এবং একবার এই মোডটি স্থিতিশীল হয়ে উঠবে এবং সর্বজনীনভাবে স্বীকৃত হয়ে উঠলে, আমরা সেই নকশার ভুলটি হ্রাস করতে পারি--preserve-merges
।
গিট 2.19 (কিউ 3 2018) --rebase-merges
এটিকে কাজ করে নতুন বিকল্পটিকে উন্নত করে --exec
।
" --exec
" " " " " অপশনে git rebase --rebase-merges
এক্সিকিউট কমান্ডগুলি ভুল জায়গায় স্থাপন করেছে, যা সংশোধন করা হয়েছে।
দেখুন 1ace63b কমিট (09 আগস্ট 2018), এবং f0880f7 কমিট দ্বারা (06 আগস্ট 2018) জোহানেস Schindelin ( dscho
) ।
(দ্বারা একীভূত junio সি Hamano - gitster
- মধ্যে কমিট 750eb11 , 20 আগস্ট 2018)
rebase --exec
: এটি দিয়ে কাজ করা --rebase-merges
প্রত্যেকের পরে --exec
একটি exec
কল সংযোজন করা ধারণা pick
।
fixup!
/ S quash!
কমিটের সূচনা হওয়ার পরে , এই ধারণাটি "পিক, সম্ভবত একটি ফিক্সআপ / স্কোয়াশ চেইন" প্রয়োগ করার জন্য প্রসারিত করা হয়েছিল, অর্থাত্ কোনও এক্স pick
এবং এর সাথে সম্পর্কিত
fixup
বা squash
লাইনগুলির মধ্যে সন্নিবেশ করা হবে না ।
বর্তমান বাস্তবায়ন এটি অর্জনের জন্য একটি নোংরা কৌশল ব্যবহার করে: এটি ধরে নিয়েছে যে কেবল পিক / ফিক্সআপ / স্কোয়াশ কমান্ড রয়েছে এবং তারপরে প্রথমটি বাদ
দিয়ে লাইনগুলি সন্নিবেশ করায় এবং একটি চূড়ান্ত সংযোজন করে।exec
pick
দ্বারা উত্পন্ন করণীয় তালিকাগুলি দিয়ে git rebase --rebase-merges
, এই সহজ বাস্তবায়নের শো তার সমস্যার: এটা সঠিক ভুল জিনিস আছে যখন উৎপন্ন label
, reset
এবং merge
কমান্ড।
: আসুন পরিবর্তন বাস্তবায়ন ঠিক করতে আমরা কি চাই জন্য বর্ণন
pick
লাইন, কোনো ফিক্সআপ / স্কোয়াশ চেইন এড়িয়ে যান এবং তারপর সন্নিবেশ exec
লাইন । হালকা, ধুয়ে ফেলা, পুনরাবৃত্তি।
দ্রষ্টব্য: আমরা যখনই সম্ভব কমেন্ট লাইনগুলির আগে toোকাতে ব্যথা নিই , কেননা খালি কমিটগুলি মন্তব্য করা আউট পিক লাইনগুলি দ্বারা উপস্থাপিত করা হয় (এবং আমরা এই জাতীয় লাইনের আগে একটি পূর্ববর্তী পিকের এক্সিকিউট লাইনটি সন্নিবেশ করতে চাই , এর পরে নয়)।
এটির সময়ে, কমান্ডগুলির exec
পরে লাইনগুলিও যুক্ত করুন merge
, কারণ কমান্ডের সাথে সেগুলি একই রকম pick
: তারা নতুন কমিট যোগ করে।
গিট ২.২২ (Q2 2019) একটি রিবাজ অন্তর্বর্তী রাষ্ট্রগুলি সংরক্ষণের জন্য রেফ / পুনর্লিখন / শ্রেণিবিন্যাসের ব্যবহার স্থির করে, যা অন্তর্নিহিতভাবে ওয়ার্কট্রি প্রতি শ্রেণিবদ্ধ করে তোলে makes
দেখুন b9317d5 কমিট , 90d31ff কমিট , 09e6564 কমিট (07 মার্চ 2019) দ্বারা গান Nguyễn গান Thái আরো Ngọc গান Duy ( pclouds
) ।
(দ্বারা একীভূত junio সি Hamano - gitster
- মধ্যে কমিট 917f2cd , 09 এপ্রিল 2019)
নিশ্চিত করুন যে রেফগুলি / পুনর্লিখন / প্রতি কর্মশক্তি রয়েছে
a9be29c (সিকোয়েন্সার: label
ওয়ার্কট্রি-লোকাল, 2018-04-25, গিট 2.19) কমান্ড দ্বারা তৈরি করা রেফগুলি refs/rewritten/
ওয়ার্কট্রি রেফারেন্স স্পেস হিসাবে যুক্ত করে।
দুর্ভাগ্যক্রমে (আমার খারাপ) এমন কয়েকটি জায়গা রয়েছে যা বাস্তবিক প্রতি কর্মশালার জন্য তা নিশ্চিত করার জন্য আপডেটের প্রয়োজন।
- add_per_worktree_entries_to_dir()
refs/rewritten/
প্রতি-রেপো একের পরিবর্তে প্রতি-কর্মশ্রেখায় রেফারিং তালিকাটি নিশ্চিত করার জন্য আপডেট করা হয়েছে ।
common_list[]
আপডেট করা হয়েছে যাতে git_path()
সঠিক অবস্থানটি ফিরে আসে। এর মধ্যে " rev-parse --git-path
" অন্তর্ভুক্ত রয়েছে ।
এই জগাখিচুড়ি আমার দ্বারা তৈরি করা হয়েছে।
আমি refs/worktree,
বিশেষ চিকিত্সা ব্যতীত যেখানে সমস্ত রেফ-ওয়ার্কট্রি হবে তার প্রবর্তন দিয়ে এটি ঠিক করার চেষ্টা শুরু করেছি ।
দুর্ভাগ্যজনক রেফ / পুনর্লিখনগুলি রেফ / ওয়ার্কট্রি এর আগে এসেছিল তাই আমরা কেবল এটিই করতে পারি।
গিট 2.24 (Q4 2019) এর সাথে, " git rebase --rebase-merges
" বিভিন্ন সংহত কৌশল চালানো এবং কৌশলগুলিকে তাদের নির্দিষ্ট বিকল্পগুলি পাস করতে শিখেছে।
দেখুন কমিট 476998d (04 সেপ্টেম্বর 2019) দ্বারা ইলিয়াস Newren ( newren
) ।
দেখুন কমিট e1fac53 , a63f990 কমিট , 5dcdd74 কমিট , e145d99 কমিট , 4e6023b কমিট , f67336d কমিট , a9c7107 কমিট , b8c6f24 কমিট , d51b771 কমিট , কমিট c248d32 , কমিট 8c1e240 , কমিট 5efed0e , কমিট 68b54f6 , 2e7bbac কমিট , কমিট 6180b20 , d5b581f কমিট 31 ( জুলাই 2019) দ্বারাজোহানেস শিন্ডেলিন ( dscho
) ।
(দ্বারা একীভূত junio সি Hamano - gitster
- মধ্যে কমিট 917a319 , 18 সেপ্টেম্বর 2019)
গিট 2.25 (কিউ 12020) এর সাথে, ওয়ার্কট্রি স্থানীয় এবং ভাণ্ডার গ্লোবাল রেফগুলি পৃথক পৃথক বলতে বলার জন্য ব্যবহৃত যুক্তিটি স্থির করা হয়েছে, সংরক্ষণ-সংযুক্তির সুবিধার্থে।
দেখুন কমিট f45f88b , কমিট c72fc40 , কমিট 8a64881 , কমিট 7cb8c92 , কমিট ই 536 বি 1 এফ (21 অক্টোবর 2019) এসজেডের গবার ( szeder
) এর মাধ্যমে ।
(দ্বারা একীভূত junio সি Hamano - gitster
- মধ্যে db806d7 কমিট , 10 নভেম্বর 2019)
path.c
: match
মান ব্যতীত ফাংশনটি কল করবেন নাtrie_find()
সাইন-অফ-বাই: এসজেডর গোবর
'লগস / রেফস' কোনও বৃক্ষ-নির্দিষ্ট পথ নয়, তবে যেহেতু b9317d55a3 (নিশ্চিত করুন রেফ / পুনর্লিখিত / প্রতি কর্মশালার প্রতিশ্রুতি দিন, 2019-03-07, v2.22.0-rc0) ' git rev-parse --git-path
' একটি বগাস পথ ফিরিয়েছে যদি একটি পিছনে ' /
' উপস্থিত থাকে:
$ git -C WT/ rev-parse --git-path logs/refs --git-path logs/refs/
/home/szeder/src/git/.git/logs/refs
/home/szeder/src/git/.git/worktrees/WT/logs/refs/
আমরা trie
কোনও পথ সাধারণ ডিরের অন্তর্গত বা গাছ-নির্দিষ্ট কাজ করে কিনা তা দক্ষতার সাথে সিদ্ধান্ত নিতে একটি ডেটা স্ট্রাকচার ব্যবহার করি ।
ঘটনাচক্রে b9317d55a3 একটি বাগ যে পুরনো হিসাবে সূত্রপাত trie
বাস্তবায়ন নিজে যোগ 4e09cf2acf ( " path
: অপ্টিমাইজ সাধারণ Dir পরীক্ষণ", 2015-08-31, গীত v2.7.0-rc0 - একত্রীকরণ তালিকাভুক্ত ব্যাচ # 2 )।
বর্ণিত মন্তব্য অনুসারে trie_find()
, এটি কেবল একটি "/ -অর- \ 0-সমাপ্ত উপসর্গের জন্য ট্রাইতে একটি মান রয়েছে" এর জন্য প্রদত্ত ম্যাচ ফাংশনটিকে 'fn' বলা উচিত।
এটি সত্য নয়: তিনটি জায়গা রয়েছে যেখানে ট্রাই_ফাইন্ড () ম্যাচের ফাংশনটিকে কল করে তবে তাদের মধ্যে একটিতে মানটির অস্তিত্বের জন্য চেকটি অনুপস্থিত।
b9317d55a3 দুটি নতুন কী যুক্ত করেছে trie
:
- '
logs/refs/rewritten
', এবং
- '
logs/refs/worktree
', ইতিমধ্যে বিদ্যমান ' logs/refs/bisect
' এর পরে।
এর ফলে trie
পথ ' logs/refs/
' নোডে পরিণত হয়েছিল , যা আগে ছিল না এবং এর কোনও মান সংযুক্ত নেই।
' logs/refs/
' এর জন্য একটি কোয়েরি এই নোডটি সন্ধান করে এবং তারপরে সেই match
ফাংশনটির একটি কলসাইটকে হিট করে যা মানটির অস্তিত্বের জন্য যাচাই করে না এবং এইভাবে match
ফাংশনটিকে NULL
মান হিসাবে অনুরোধ করে।
match
ফাংশনটি যখন check_common()
একটি NULL
মান সহ আহ্বান করা হয়, এটি 0 প্রদান করে, যা সূচিত করে যে কোয়েরি করা পথটি সাধারণ ডিরেক্টরিতে অন্তর্ভুক্ত নয়, শেষ পর্যন্ত ফলস্বরূপ উপরের দেখানো বগাস পথের ফলাফল।
অনুপস্থিত শর্তটি এতে জুড়ুন trie_find()
যাতে এটি কোনও অ-বিদ্যমান মানের সাথে মিল ফাংশনটিকে কখনই ডাকে না।
check_common()
এরপরে এটি আর পরীক্ষা করতে হবে না যে এটি একটি নন-নুল মান পেয়েছে, সুতরাং সেই শর্তটি সরিয়ে দিন।
আমি বিশ্বাস করি যে অন্য কোনও পথ নেই যা অনুরূপ বগাস আউটপুট তৈরি করতে পারে।
ম্যাচ ফাংশনটির সাথে একটি NULL
মান হিসাবে ডাকা হওয়ার ফলস্বরূপ কেবল অন্যান্য চাবি এএএএফসিটি হ'ল ' co
' (কীগুলির কারণে ' common
' এবং ' config
')।
তবে, তারা সাধারণ ডিরেক্টরি অন্তর্ভুক্ত এমন কোনও ডিরেক্টরিতে না থাকায় ফলস্বরূপ কার্যকর বৃক্ষ-নির্দিষ্ট পথটি প্রত্যাশিত।
git --rebase-merges
শেষ পর্যন্ত পুরানোটিকে প্রতিস্থাপন করবেgit --preserve-merges
। দেখুন নিচের আমার উত্তর