আমি কীভাবে কমান্ড লাইনের সাথে একটি নির্দিষ্ট গিট শাখার সর্বশেষ কমিট হ্যাশ পরীক্ষা করতে পারি?
git log -n 1 [branch_name]শাখার নাম (দূরবর্তী বা স্থানীয় শাখা হতে পারে) isচ্ছিক। শাখা_ নাম ব্যতীত এটি বর্তমান শাখার সর্বশেষ প্রতিশ্রুতি প্রদর্শন করবে।
আমি কীভাবে কমান্ড লাইনের সাথে একটি নির্দিষ্ট গিট শাখার সর্বশেষ কমিট হ্যাশ পরীক্ষা করতে পারি?
git log -n 1 [branch_name]শাখার নাম (দূরবর্তী বা স্থানীয় শাখা হতে পারে) isচ্ছিক। শাখা_ নাম ব্যতীত এটি বর্তমান শাখার সর্বশেষ প্রতিশ্রুতি প্রদর্শন করবে।
উত্তর:
ব্যবহার git ls-remote git://github.com/<user>/<project>.git। উদাহরণস্বরূপ, আমার ট্র্যাক-ব্যাকলগ প্রকল্পটি দেয়:
:: git ls-remote git://github.com/jszakmeister/trac-backlog.git
5d6a3c973c254378738bdbc85d72f14aefa316a0 HEAD
4652257768acef90b9af560295b02d0ac6e7702c refs/heads/0.1.x
35af07bc99c7527b84e11a8632bfb396823326f3 refs/heads/0.2.x
5d6a3c973c254378738bdbc85d72f14aefa316a0 refs/heads/master
520dcebff52506682d6822ade0188d4622eb41d1 refs/pull/11/head
6b2c1ed650a7ff693ecd8ab1cb5c124ba32866a2 refs/pull/11/merge
51088b60d66b68a565080eb56dbbc5f8c97c1400 refs/pull/12/head
127c468826c0c77e26a5da4d40ae3a61e00c0726 refs/pull/12/merge
2401b5537224fe4176f2a134ee93005a6263cf24 refs/pull/15/head
8aa9aedc0e3a0d43ddfeaf0b971d0ae3a23d57b3 refs/pull/15/merge
d96aed93c94f97d328fc57588e61a7ec52a05c69 refs/pull/7/head
f7c1e8dabdbeca9f9060de24da4560abc76e77cd refs/pull/7/merge
aa8a935f084a6e1c66aa939b47b9a5567c4e25f5 refs/pull/8/head
cd258b82cc499d84165ea8d7a23faa46f0f2f125 refs/pull/8/merge
c10a73a8b0c1809fcb3a1f49bdc1a6487927483d refs/tags/0.1.0
a39dad9a1268f7df256ba78f1166308563544af1 refs/tags/0.2.0
2d559cf785816afd69c3cb768413c4f6ca574708 refs/tags/0.2.1
434170523d5f8aad05dc5cf86c2a326908cf3f57 refs/tags/0.2.2
d2dfe40cb78ddc66e6865dcd2e76d6bc2291d44c refs/tags/0.3.0
9db35263a15dcdfbc19ed0a1f7a9e29a40507070 refs/tags/0.3.0^{}
আপনার প্রয়োজনের জন্য কেবল গ্রেপ করুন এবং এটি কেটে দিন:
:: git ls-remote git://github.com/jszakmeister/trac-backlog.git | \
grep refs/heads/master | cut -f 1
5d6a3c973c254378738bdbc85d72f14aefa316a0
অথবা, আপনি কমান্ড লাইনে কোন রেফগুলি চান তা নির্দিষ্ট করতে পারেন এবং এর মাধ্যমে গ্রেপটি এড়াতে পারেন:
:: git ls-remote git://github.com/jszakmeister/trac-backlog.git refs/heads/master | \
cut -f 1
5d6a3c973c254378738bdbc85d72f14aefa316a0
দ্রষ্টব্য: এটি git://ইউআরএল হতে হবে না । এটা https://বা git@github.com:খুব হতে পারে ।
মূলত, এটি একটি দূরবর্তী শাখার সর্বশেষ প্রতিশ্রুতি সন্ধানের দিকে প্রস্তুত ছিল (কেবলমাত্র আপনার শেষ বার্তা থেকে নয়, তবে দূরবর্তী সংগ্রহস্থলের শাখায় আসল সর্বশেষ প্রতিশ্রুতি)। আপনার যদি স্থানীয়ভাবে কোনও কিছুর জন্য কমিট হ্যাশ দরকার হয় তবে সেরা উত্তরটি হ'ল:
git rev-parse branch-name
এটি দ্রুত, সহজ এবং একটি একক আদেশ। আপনি যদি বর্তমান শাখার জন্য প্রতিশ্রুতিবদ্ধ হ্যাশ চান তবে আপনি হেডের দিকে তাকাতে পারেন:
git rev-parse HEAD
git rev-parse my_branch_nameবা git log -n 1 my_branch_name | grep commit | awk '{ print $2 }'সহজ উত্তর; my_branch_name
refs/remotesনয়, প্রকৃত দূরবর্তী রেপো)। git rev-parse branch-nameঅবশ্যই একটি স্থানীয় শাখায় যাওয়ার উপায়।
git svnকারণ আউটপুট git svn fetchপরিবর্তন করে git logএবং তাই git logআর শেষের দূরবর্তী গিট সংগ্রহস্থল কমিট হ্যাশ পেতে আর ব্যবহার করা যাবে না ।
git log -n 1 [branch_name]
branch_name(দূরবর্তী বা স্থানীয় শাখা হতে পারে) isচ্ছিক। ছাড়া branch_nameএটি বর্তমান শাখায় সর্বশেষ প্রতিশ্রুতি প্রদর্শন করবে।
উদাহরণ স্বরূপ:
git log -n 1
git log -n 1 origin/master
git log -n 1 some_local_branch
git log -n 1 --pretty=format:"%H" #To get only hash value of commit
git hash | pbcopy clip `` [ওরফে] হ্যাশ = "! F () {it গিট লগ -n 1 - ব্যাখ্যাটি = ফর্ম্যাট:"% এইচ " দিয়ে শেষ প্রতিশ্রুতিটি অনুলিপি করতে পারি ; \}; f "` ``
git log -n 1একটি করার পরে ব্যবহার করার চেষ্টা করুন git checkout branchname। এটি সর্বশেষ প্রতিশ্রুতিবদ্ধ প্রতিশ্রুতিবদ্ধ হ্যাশ, লেখক, তারিখ এবং প্রতিশ্রুতি বার্তা দেখায়।
git pull origin/branchnameআপনার স্থানীয় রেপো প্রবাহের সাথে মেলে কিনা তা নিশ্চিত করতে প্রথমে একটি সম্পাদন করুন ।
যদি আপনি কেবল স্থানীয় স্থানীয় শাখাগুলি প্রত্যন্ত শাখায় পিছনে রয়েছেন প্রতিশ্রুতিগুলির একটি তালিকা দেখতে চান তবে এটি করুন:
git fetch origin
git cherry localbranch remotebranch
এটি কমিটগুলির সমস্ত হ্যাশগুলি তালিকাভুক্ত করবে যা আপনি এখনও আপনার স্থানীয় শাখায় মার্জ করেন নি।
আপনি পারেন git fetch nameofremoterepo, তাহলেgit log
এবং ব্যক্তিগতভাবে, আমি ওরফে gitlogকরতে git log --graph --oneline --pretty --decorate --all। চেষ্টা করুন এবং দেখুন এটি আপনার ফিট করে কিনা
--onlineএকটি সংক্ষিপ্তকরণ --pretty=oneline --abbrev-commit। তবে আপনি --prettyপাশাপাশি ব্যবহার করছেন , যা উল্টে --pretty=oneline... আমি git log --graph --abbrev-commit --decorate --allপরিবর্তে সুপারিশ করব ।
একটি মন্তব্যে আপনি লিখেছেন
আমি দেখাতে চাই যে স্থানীয় এবং গিথুব রেপোর মধ্যে পার্থক্য রয়েছে
ইতিমধ্যে অন্য উত্তরে যেমনটি উল্লেখ করা হয়েছে, আপনার git fetch originপ্রথমটি করা উচিত । তারপরে, যদি রিমোটটি আপনার বর্তমান শাখার আগে থাকে, আপনি আপনার স্থানীয় শাখা এবং রিমোট সহ সমস্ত কমিটের তালিকা করতে পারেন
git log master..origin/master --stat
যদি আপনার স্থানীয় শাখাটি এগিয়ে থাকে:
git log origin/master..master --stat
--stat পরিবর্তিত ফাইলগুলির একটি তালিকা প্রদর্শন করে।
আপনি স্পষ্টভাবে সংযোজন এবং মুছে ফেলা তালিকা করতে চান, ব্যবহার করুন git diff:
git diff master origin/master
নোট করুন যে "গিট লগ-এন 1 [শাখা_নাম]" বিকল্পটি ব্যবহার করার সময়। -n লগের কেবল একটি লাইন ফেরত দেয় তবে অর্ডার দেওয়া হয় যাতে এটির গ্যারান্টি নেই। নিম্নলিখিতটি গিট-লগ ম্যান পৃষ্ঠা থেকে নিষ্কাশন করা হয়েছে
.....
.....
Commit Limiting
Besides specifying a range of commits that should be listed using the special notations explained in the description, additional commit limiting may be applied.
Using more options generally further limits the output (e.g. --since=<date1> limits to commits newer than <date1>, and using it with --grep=<pattern> further limits to commits whose log message has a line that matches <pattern>), unless otherwise noted.
Note that these are applied before commit ordering and formatting options, such as --reverse.
-<number>
-n <number>
.....
.....