git rebase --interactiveপূর্বের প্রতিশ্রুতি সম্পাদনা করতে, চালান git reset HEAD~, এবং তারপরে git add -pকিছু যুক্ত করতে, তারপরে একটি প্রতিশ্রুতিবদ্ধতা করুন, তারপরে আরও কিছু যুক্ত করুন এবং আপনি যতবার চান তার চেয়ে আরও একবার কমিট করুন Use আপনার হয়ে গেলে, চালান git rebase --continue, এবং আপনার স্ট্যাকের আগে সমস্ত বিভাজন কমিট করবে।
গুরুত্বপূর্ণ : নোট করুন যে আপনি চারপাশে খেলতে পারেন এবং আপনি চান সমস্ত পরিবর্তন করতে পারেন, এবং পুরানো পরিবর্তনগুলি হারাতে উদ্বিগ্ন হওয়ার দরকার নেই, কারণ আপনি সবসময় git reflogআপনার প্রকল্পের পয়েন্টটি খুঁজে পেতে চালাতে পারেন যা আপনার চান পরিবর্তনগুলি রয়েছে, (আসুন এটি কল করুন a8c4ab) , এবং তারপর git reset a8c4ab।
এটি কীভাবে কাজ করে তা দেখানোর জন্য এখানে কয়েকটি ধারাবাহিক আদেশ রয়েছে:
mkdir git-test; cd git-test; git init
এখন একটি ফাইল যোগ করুন A
vi A
এই লাইন যুক্ত করুন:
one
git commit -am one
তারপরে এই লাইনটি A তে যুক্ত করুন:
two
git commit -am two
তারপরে এই লাইনটি A তে যুক্ত করুন:
three
git commit -am three
ফাইলটি এখন এ জাতীয় দেখাচ্ছে:
one
two
three
এবং আমাদের git logদেখতে নিম্নলিখিতগুলির মতো (ভাল, আমি ব্যবহার করি)git log --pretty=oneline --pretty="%h %cn %cr ---- %s"
bfb8e46 Rose Perrone 4 seconds ago ---- three
2b613bc Rose Perrone 14 seconds ago ---- two
9aac58f Rose Perrone 24 seconds ago ---- one
ধরা যাক আমরা দ্বিতীয় প্রতিশ্রুতি বিভক্ত করতে চাই two,।
git rebase --interactive HEAD~2
এটি এমন একটি বার্তা নিয়ে আসে যা এরকম দেখাচ্ছে:
pick 2b613bc two
pick bfb8e46 three
প্রতিশ্রুতিবদ্ধ সম্পাদনা pickকরতে প্রথমে একটিতে পরিবর্তন করুন e।
git reset HEAD~
git diff আমাদের দেখায় যে আমরা দ্বিতীয় প্রতিশ্রুতিবদ্ধতার জন্য যে প্রতিশ্রুতিবদ্ধ করেছি তা কেবল অস্তিত্তর:
diff --git a/A b/A
index 5626abf..814f4a4 100644
--- a/A
+++ b/A
@@ -1 +1,2 @@
one
+two
আসুন সেই পরিবর্তনটি পর্যায়ক্রমে ফাইলটিতে সেই লাইনে "এবং একটি তৃতীয়" যুক্ত করুন A।
git add .
একটি ইন্টারেক্টিভ রিবেস চলাকালীন এটি সাধারণত আমাদের পয়েন্ট যেখানে আমরা দৌড়াব git rebase --continue, কারণ আমরা সাধারণত পূর্বের প্রতিশ্রুতি সম্পাদনা করতে আমাদের কমিটস স্ট্যাকের পিছনে ফিরে যেতে চাই। তবে এবার আমরা একটি নতুন কমিট তৈরি করতে চাই। সুতরাং আমরা চালাতে হবে git commit -am 'two and a third'। এখন আমরা ফাইল সম্পাদনা করি Aএবং লাইন যুক্ত করি two and two thirds।
git add .
git commit -am 'two and two thirds'
git rebase --continue
আমাদের প্রতিশ্রুতিবদ্ধতার সাথে আমাদের বিরোধ রয়েছে three, সুতরাং আসুন এটি সমাধান করুন:
আমরা পরিবর্তন করব
one
<<<<<<< HEAD
two and a third
two and two thirds
=======
two
three
>>>>>>> bfb8e46... three
প্রতি
one
two and a third
two and two thirds
three
git add .; git rebase --continue
এখন আমাদের git log -pচেহারাটি এর মতো:
commit e59ca35bae8360439823d66d459238779e5b4892
Author: Rose Perrone <roseperrone@fake.com>
Date: Sun Jul 7 13:57:00 2013 -0700
three
diff --git a/A b/A
index 5aef867..dd8fb63 100644
--- a/A
+++ b/A
@@ -1,3 +1,4 @@
one
two and a third
two and two thirds
+three
commit 4a283ba9bf83ef664541b467acdd0bb4d770ab8e
Author: Rose Perrone <roseperrone@fake.com>
Date: Sun Jul 7 14:07:07 2013 -0700
two and two thirds
diff --git a/A b/A
index 575010a..5aef867 100644
--- a/A
+++ b/A
@@ -1,2 +1,3 @@
one
two and a third
+two and two thirds
commit 704d323ca1bc7c45ed8b1714d924adcdc83dfa44
Author: Rose Perrone <roseperrone@fake.com>
Date: Sun Jul 7 14:06:40 2013 -0700
two and a third
diff --git a/A b/A
index 5626abf..575010a 100644
--- a/A
+++ b/A
@@ -1 +1,2 @@
one
+two and a third
commit 9aac58f3893488ec643fecab3c85f5a2f481586f
Author: Rose Perrone <roseperrone@fake.com>
Date: Sun Jul 7 13:56:40 2013 -0700
one
diff --git a/A b/A
new file mode 100644
index 0000000..5626abf
--- /dev/null
+++ b/A
@@ -0,0 +1 @@
+one