উত্তর:
প্রায় কাজ করবে।
অ-ডিফল্ট শাখায় চাপ দেওয়ার সময় আপনাকে উত্স রেফ এবং লক্ষ্য রেফ উল্লেখ করতে হবে:
git push origin branch1:branch2
অথবা
git push <remote> <branch with new changes>:<branch you are pushing to>
<remote>/<branch>
git push origin :branch2
ভেবে চালানোর জন্য প্ররোচিত হয়েছে যে এটি কেবলমাত্র স্থানীয় স্থানীয় শাখাকে দূরবর্তী স্থানে ঠেলে দেবে branch2
, এটি পরিবর্তে দূরবর্তীটিকে মুছবেbranch2
! সঠিক উপায় git push origin HEAD:branch2
।
অবশ্যই, যদিও এটি কেবল তখনই কাজ করবে যদি এটি BRANCH2 এর একটি দ্রুত এগিয়ে থাকে বা আপনি এটি জোর করে থাকেন। এই জাতীয় কোনও কাজ করার সঠিক বাক্য গঠন
git push <remote> <source branch>:<dest branch>
এটি কীভাবে কাজ করে তার আরও বিশদ জানতে গিট পুশ ম্যান পৃষ্ঠায় একটি "রেফস্পেক" এর বর্ণনা দেখুন । আরও মনে রাখবেন যে একটি শক্তি ধাক্কা এবং রিসেট উভয়ই সেই অপারেশন যা "ইতিহাস পুনর্লিখন" করে, এবং হৃদয়ের মূর্ছা দ্বারা চেষ্টা করা উচিত নয় যতক্ষণ না আপনি নিশ্চিত হন যে কোনও দূরবর্তী সংগ্রহস্থল এবং অন্যান্য বিষয়ে আপনি কী করছেন তা আপনি জানেন না know একই প্রকল্পের কাঁটাচামচ / ক্লোন রয়েছে এমন লোক।
git push --force remote local-branch:remote-branch
।
এটা খুবই সাধারণ. মনে করুন যে আপনি আপনার শাখা A তে পরিবর্তন করেছেন যা স্থানীয় এবং দূরবর্তী উভয় জায়গায় বাস করে তবে আপনি এই পরিবর্তনগুলি শাখা বিতে ঠেলে দিতে চান যা কোথাও নেই।
স্টেপ-01: তৈরি ও সুইচ নতুন শাখায় বি
গিট চেকআউট-বি বি
পদক্ষেপ -২০: নতুন স্থানীয় শাখায় পরিবর্তন যুক্ত করুন
গিট অ্যাড // বা নির্দিষ্ট ফাইল (গুলি)
পদক্ষেপ -03: পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ
গিট কমিট - এম "কমিট_মেসেজ"
পদক্ষেপ -04: নতুন শাখায় পরিবর্তন ঠেলাও বি । নীচের কমান্ডটি দূরবর্তীভাবে পাশাপাশি একটি নতুন শাখা বি তৈরি করবে
গিট পুশ অরিজিনাল বি
এখন, আপনি বিটবাকেট থেকে যাচাই করতে পারবেন যে শাখা বি এর শাখা এ এর চেয়ে আরও একটি কমিট থাকবে । আর আপনি যখন শাখা চেকআউট হবে একজন এই পরিবর্তনগুলি সেখানে হবে না এই শাখা মধ্যে push করা হয়েছে বি ।
দ্রষ্টব্য: আপনি যদি শাখার A শাখায় আপনার পরিবর্তনগুলি সম্পাদন করে থাকেন এবং এর পরে আপনি সেই পরিবর্তনগুলি নতুন শাখা বিতে স্থানান্তর করতে চান তবে আপনাকে প্রথমে সেই পরিবর্তনগুলি পুনরায় সেট করতে হবে। #HappyLearning
আমার ক্ষেত্রে আমার একটি স্থানীয় প্রতিশ্রুতি ছিল, যা এতে চাপ দেওয়া হয়নি origin\master
, তবে আমার স্থানীয় master
শাখায় কমিট হয়েছিল । এই স্থানীয় প্রতিশ্রুতি এখন অন্য শাখায় ঠেলা উচিত।
সঙ্গে গীত এক্সটেনশানগুলি আপনি ভালো কিছু করতে পারেন:
আপনি এটি জিআইটি কমান্ড লাইনেও করতে পারেন । ডেভিড ক্রিস্টেনসেনের কাছ থেকে অনুলিপি করা উদাহরণ :
আমি মনে করি আপনি
git cherry-pick
+git reset
আরও দ্রুত ওয়ার্কফ্লো হতে পাবেন :আপনার একই পরিস্থিতিটি ব্যবহার করে, "বৈশিষ্ট্য" শীর্ষস্থানীয় সর্বাধিক প্রতিশ্রুতিবদ্ধ হওয়া শাখা হওয়ার সাথে এটি করা আরও সহজ হবে:
git checkout master
git cherry-pick feature
git checkout feature
git reset --hard HEAD^
কাজটি বেশ কিছুটা সাশ্রয় করে এবং
git cherry-pick
হ্যান্ডেল করার জন্য ডিজাইন করা দৃশ্যটি।আমি এটাও নোট করব যে এটি সর্বোচ্চ কাজ করার প্রতিশ্রুতি না দিলে কাজ করবে; চেরি-পিক করার জন্য আপনার কেবল যুক্তির জন্য একটি প্রতিশ্রুতি দরকার:
git checkout master
git cherry-pick $sha1
git checkout feature
git rebase -i ... # whack the specific commit from the history
আমি একটি খারাপ ফলাফল পেয়েছি git push origin branch1:branch2
কমান্ডের :
আমার ক্ষেত্রে, branch2
মুছে ফেলা হয় এবংbranch1
কিছু নতুন পরিবর্তন সহ আপডেট করা হয়েছে।
অতএব, আপনি যদি পরিবর্তনগুলি কেবল এর branch2
থেকে চাপতে চান তবে branch1
নীচের পদ্ধতিগুলি ব্যবহার করে দেখুন:
branch1
:git add .
branch1
:git commit -m 'comments'
চালু branch1
:git push origin branch1
চালু branch2
:git pull origin branch1
চালু branch1
: পূর্ববর্তী প্রতিশ্রুতিতে প্রত্যাবর্তন করুন।
git init
#git remote remove origin
git remote add origin <http://...git>
echo "This is for demo" >> README.md
git add README.md
git commit -m "Initail Commit"
git checkout -b branch1
git branch --list
****add files***
git add -A
git status
git commit -m "Initial - branch1"
git push --set-upstream origin branch1
#git push origin --delete branch1
#git branch --unset-upstream
আপনি ব্রাঞ্চ 1 এর প্রতি প্রতিশ্রুতিবদ্ধ হয়েছেন এবং পরিবর্তনগুলি না হারিয়ে এই প্রতিশ্রুতি থেকে মুক্তি পেতে চান? গিট রিসেট আপনার যা প্রয়োজন। না:
git branch BRANCH2
আপনি যদি ব্রাঞ্চ 2 কে একটি নতুন শাখা হতে চান। আপনি চাইলে এটিকে অন্য একটি শাখার সাথেও মার্জ করতে পারেন। যদি BRANCH2 ইতিমধ্যে বিদ্যমান থাকে, তবে এই পদক্ষেপটি ছেড়ে দিন।
তারপরে:
git reset --hard HEAD~3
আপনি যে শাখায় প্রতিশ্রুতিবদ্ধ তা দায়বদ্ধতা পুনরায় সেট করতে চাইলে want এটি শেষ তিনটি কমিটের পরিবর্তনগুলি নেয়।
তারপরে পুনরায় সেট করা কমিটগুলি ব্রাঞ্চ 2 এ আনতে নীচে করুন
git checkout BRANCH2
এই উত্সটি সহায়ক ছিল: https://git-scm.com/docs/git-reset#git-reset-Undoacommitmakingitatopicbranch
branch1
এবংbranch2
দূরবর্তী থাকতে হবে? আপনি যদি স্থানীয়branch1
থেকে দূরবর্তী দিকে ধাক্কা দিতে চানorigin branch2
?