मैं इसके बीच के अंतर को समझने की कोशिश कर रहा हूं
git push --force
तथा
git push --force-with-lease
मेरा अनुमान है कि बाद वाला केवल रिमोट को धक्का देता है यदि रिमोट में ऐसा नहीं होता है कि स्थानीय शाखा के पास नहीं है ?
--force-with-leaseआधुनिक सीपीयू पर तुलना-और-अदला-बदली निर्देशों के समान है: जो चाहता है कि स्वैप को अपेक्षित मूल्य और नए मूल्य की आपूर्ति हो। स्वैप करने वाली प्रणाली वास्तविक वर्तमान मूल्य के साथ अपेक्षित मूल्य की तुलना करती है, और स्वैप करती है अगर और केवल अगर दोनों समान हैं। git pushदूरस्थ-ट्रैकिंग नाम में जो कुछ भी है, उसके साथ अपेक्षित मूल्य, उदाहरण के लिए, नए वांछित मूल्य के साथ git push --force-with-lease origin Xअपना खुद का भेजता है origin/X; originयह आपको बताता है कि यह एक्सचेंज ने किया या नहीं।
originने एक्सचेंज किया, तो आप कर रहे हैं। यदि नहीं, तो आप नए वर्तमान मूल्य git fetch originको लेने के लिए चला सकते हैं , यदि आवश्यक हो तो अपने परिवर्तनों को पुनः प्राप्त कर सकते हैं, और फिर से प्रयास करने के लिए एक और बल-के साथ पट्टे की तुलना-और-स्वैप चला सकते हैं।
git help pushउपयोग-मामलों को इसके उद्देश्य की व्याख्या करने के लिए (मूल रूप से आपको किसी व्यक्ति को सिर्फ धक्का देने वाले परिवर्तन को कुचलने से बचाने के लिए रखा गया है)। मेरे लिए थोड़ा अस्पष्ट है कि रिमोट ट्रैकिंग शाखा कैसे काम करती है। लेकिन आम तौर पर आमतौर पर यह देखने की आवश्यकता होती है कि आपने पिछली बार ऐसा कैसे देखा थाfetchया आपनेpullकोई नया काम नहीं किया था ।