tutorial - gitlab




স্বয়ংক্রিয় প্রতিশ্রুতি ছাড়া গিট মার্জ (4)

আপনি এখানে মার্জ মানে ভুল বুঝেছেন।

--no-commit MERGE COMMIT সংঘটিত --no-commit বাধা দেয়, এবং এটি শুধুমাত্র তখন ঘটে যখন আপনি দুটি পৃথক শাখার ইতিহাসগুলি একত্রিত করেন; আপনার উদাহরণে গিট নির্দেশ করে যে এটি "ফাস্ট-ফরওয়ার্ড" মার্জ ছিল এবং তারপরে Git শুধুমাত্র শৃঙ্খলাবদ্ধভাবে শাখায় বিদ্যমান উপস্থিতগুলি প্রয়োগ করে।

এটি একটি git merge করা সম্ভব, কিন্তু একটি কমিট ছাড়া?

"ম্যান গিট মার্জ" এই বলে:

With --no-commit perform the merge but pretend the merge failed and do not autocommit,
to give the user a chance to inspect and further tweak the merge result before
committing.

কিন্তু যখন আমি git merge করার চেষ্টা করি --no-commit এটি এখনও স্বয়ংক্রিয়-কমিট। আমি যা করেছি তা এখানে:

$> ~/git/testrepo$ git checkout master
Switched to branch 'master'

$> ~/git/testrepo$ git branch
* master
  v1.0

$> ~/git/testrepo$ git merge --no-commit v1.0
Updating c0c9fd2..18fa02c
Fast-forward
 file1 |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

$> ~/git/testrepo$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)

পরবর্তী git log লোগো V1.0 শাখা থেকে মাস্টারে মার্জ হওয়া সমস্ত git log প্রকাশ করে।


আমি এই ভাবে পছন্দ তাই আমি কোনো বিরল পরামিতি মনে করতে হবে না।

git merge branch_name

তখন এটি আপনার শাখার # টি ধাপ এগিয়ে এগিয়ে আসবে, আপনি এখন এইগুলি বন্ধ করে ফেলতে পারেন এবং নিম্নলিখিতগুলির সাথে কাজের পরিবর্তনে তাদের রাখতে পারেন:

git reset @~#

উদাহরণস্বরূপ, যদি একত্রীকরণের পরে এটি 1 টি এগিয়ে আসে তবে ব্যবহার করুন:

git reset @~1

যখন শাখাটিতে শুধুমাত্র একটি কমিটি থাকে, আমি সাধারণত করি

git merge branch_name --ff

যদি আপনি নিজের মতো টাইপ করে থাকেন তবে আপনি কেবলমাত্র একটাই প্রতিশ্রুতিবদ্ধ সমস্ত পরিবর্তনগুলি করতে চান তবে --quash করবেন

$ git merge --squash v1.0
$ git commit




git