আমি গিতে নতুন, তাই আমাকে নবজাতকের মতো নির্দ্বিধায় বিবেচনা করুন।
আমাদের কর্মপ্রবাহ এমনই। আমাদের একটি শাখা রয়েছে devযা আমি পৌঁছাতে পারি origin/dev। যখন আমরা পরিবর্তনগুলি করি, আমরা একটি শাখা তৈরি করে দেব:
গিট চেকআউট-বি ফিক্সফোর্ড বাগ উত্স / দেব
এখন আমার একটি শাখা রয়েছে FixForBugযা ট্র্যাক করছে (আমি মনে করি এটি সঠিক শব্দ) origin/dev। সুতরাং, আমি যদি git pullএটি করি তবে এটি নতুন পরিবর্তন আনবে origin/devযা থেকে দুর্দান্ত। এখন, যখন আমি আমার ফিক্সটি শেষ করেছি, আমি একই জিনিস নামক একটি দূরবর্তী শাখায় ধাক্কা দিয়েছি।
প্রথমে আমি যে কোনও পরিবর্তন এনেছি origin/devএবং একটি রিবেস করব:
গিট টান --rebase
তারপরে আমি পরিবর্তনগুলি একই নামের একটি প্রত্যন্ত শাখায় ঠেকিয়ে দিই:
গিট পুশ অরিজিন ফিক্সফোগ
এখন, রিমোট সার্ভারে একটি শাখা রয়েছে এবং আমি এই পরিবর্তনটি অনুমোদিত হওয়ার জন্য এবং দেব শাখায় ফিরে একীভূত হওয়ার জন্য একটি টান অনুরোধ তৈরি করতে পারি। আমি চাই না কখনো কিছু ধাক্কা origin/devনিজেকে। আমি অনুমান করছি এটি প্রায় সাধারণ ওয়ার্কফ্লো।
আমি প্রথমবার git pushএটি করি , এটি সূক্ষ্মভাবে কাজ করে এবং দূরবর্তী শাখা তৈরি করে। যাইহোক, আমি যদি দ্বিতীয়বার চাপ দিই (কোড-পর্যালোচনা চলাকালীন বলি, কেউ কোনও সমস্যা দেখায়) তবে আমি নিম্নলিখিত ত্রুটিটি পেয়েছি:
ত্রুটি: ' https://github.limeade.info/Limeade/product.git ' ইঙ্গিতটি: কিছু রেফকে ধাক্কা দিতে ব্যর্থ হয়েছে আপডেটগুলি আপনার প্রত্যাবর্তনের কারণে প্রত্যাবর্তিত হয়েছিল কারণ আপনার বর্তমান শাখার অগ্রভাগটি ইঙ্গিতটির পিছনে রয়েছে: এর দূরবর্তী অংশটি। পুনরায় চাপ দেওয়ার আগে দূরবর্তী পরিবর্তনগুলি (যেমন: ইঙ্গিত: 'গিট টান ...') একীভূত করুন। ইঙ্গিত: বিশদটির জন্য 'গিট পুশ - হেল্প' এ 'ফাস্ট-ফরওয়ার্ডস সম্পর্কে নোট দেখুন'।
যাইহোক, যদি আমি git statusএটি করি তবে আমি origin/dev1 টি প্রতিশ্রুতি দ্বারা এগিয়ে রয়েছি (যা বোঝায়) এবং যদি আমি ইঙ্গিতটি অনুসরণ করি এবং চালনা git pullকরি তবে এটি বলে যে সবকিছু আপ টু ডেট। আমি মনে করি এটি এর কারণ আমি আমার উজানের শাখার চেয়ে আলাদা শাখায় ঠেলাচ্ছি। আমি চালিয়ে এই সমস্যাটি সমাধান করতে পারি:
git push -f origin FixForBug
সেক্ষেত্রে এটি দূরবর্তী শাখায় পরিবর্তনগুলি চাপিয়ে দেবে, বলছে (জোর করে আপডেট) এবং প্রত্যন্ত শাখায় সবকিছু ভাল বলে মনে হচ্ছে ।
আমার প্রশ্নগুলো:
কেন -fএই পরিস্থিতিতে প্রয়োজন হয়? সাধারণত যখন আপনি কিছু জোর করে থাকেন তখন এর কারণ আপনি কোনও ভুল করছেন বা কমপক্ষে স্ট্যান্ডার্ড অনুশীলনের বিরুদ্ধে। আমি কি ঠিকঠাক করছি, বা এটি দূরবর্তী শাখায় কিছু জগাখিচুড়ি করবে বা অবশেষে যারাই আমার স্টাফগুলিকে দেবের সাথে একীভূত করতে হবে তার জন্য ঝামেলা তৈরি করবে?
git pull origin FixForBugআমি যে ধাক্কা দেওয়ার আগে এটি মূলত চালান ? ঠিক আছে যে বোধগম্য। একটি উত্তর হিসাবে যুক্ত মনে নির্দ্বিধায়!
