আনপশড গিট কমিটগুলি দেখছে


1752

আমি যে স্থানীয় প্রতিশ্রুতিগুলি করেছি তা কীভাবে দেখতে পারি, যেগুলি এখনও দূরবর্তী সংগ্রহস্থলটিতে ঠেলা যায়নি? মাঝেমধ্যে, git statusমুদ্রণ করবে যে আমার শাখাটি এক্স এর আগে কমিট করে origin/masterতবে সবসময় নয়।

এটি কি আমার গিট ইনস্টল করার সাথে একটি বাগ, বা আমি কিছু মিস করছি?


18
গিট 2.5+ (কিউ 2 2015) দিয়ে শুরু করে আসল উত্তরটি হবে git log @{push}..নীচে আমার উত্তরে সেই নতুন শর্টকাটটি দেখুন @{push}( আপনি যে রিমোট ট্র্যাকিং শাখার দিকে লক্ষ্য করছেন) উল্লেখ করুন
ভোনসি

59
@ টোরেক - আরও একটি সহজ কাজ গিট দ্বারা কঠিন করে তুলেছে। যতবারই গিটের প্রশ্ন শত বা হাজার হাজার উপস্থাপনা এবং কয়েক মিলিয়ন ভিউ সহ প্রদর্শিত হয়, তারপরে কারও মনে করা উচিত: বাহ, আমরা সত্যিই সেই কর্মপ্রবাহকে টানিয়েছি। হায়, গিট দেব এর বিকাশ জীবনের চক্রের প্রতিক্রিয়া পদক্ষেপ বাদ দিয়েছে, তাই প্রতিক্রিয়াটি সংযুক্ত করা হয়নি। পরিবর্তে, তারা বার বার একই ভুল করতে থাকে। এই প্রশ্নের জন্য, git status --all2010 এ হাজির হওয়া উচিত ছিল; বা git status -vআসলে ভারবস আউটপুট সরবরাহ করা উচিত যাতে অতিরিক্ত তথ্য অন্তর্ভুক্ত থাকে।
jww

4
আমি একমত নই যে "গিট স্ট্যাটাস -v" এর এই তথ্য সরবরাহ করা উচিত কারণ এটি কেবলমাত্র চেক আউট শাখার সাথে সম্পর্কিত বলেই কার্যকারী গাছ সম্পর্কে স্ট্যাটাস দেওয়ার কথা। তবে "গিট ব্রাঞ্চ-ভি" সম্পর্কে নীচের উত্তরটি দেখুন, যা আমি বিশ্বাস করি গ্রহণযোগ্য উত্তর হওয়া উচিত
জোয়েলফ্যান

13
এই নির্দিষ্ট স্ট্যাকওভারফ্লো প্রশ্নটিতে সঠিক উত্তরগুলির সর্বাধিক সংখ্যা রয়েছে যা সমস্ত কাজ এখনও কোনও অর্থ দেয় না make
পিট অ্যালভিন

@ জোশ-বুহলার দুঃখিত, আমি 'স্টার' ক্লিক করার চেষ্টা করার সময় আমি ঘটনাক্রমে নিচে ভোট দিয়েছি। পুনরায় ভোট দেওয়ার চেষ্টা করা হয়েছিল, কিন্তু, কাজ হয়নি!
রাফিআলহামাদ

উত্তর:


1827
git log origin/master..HEAD

আপনি একই সিনট্যাক্স ব্যবহার করে ডিফটিও দেখতে পারেন

git diff origin/master..HEAD

3
এটি আমার জন্য এটি করেছে - কোনও কারণে গিট লগের উত্স .. নিজেই একটি ত্রুটি ছুঁড়েছিল। দেখে মনে হচ্ছে যে আমার স্থানীয় শাখাটি যেভাবে কনফিগার করা হয়েছিল তাতে আমারও সমস্যা ছিল - একবার আমি এখানে যে পরিবর্তনগুলি করেছি তা এখানে পেয়েছি: wincent.com/blog/…… সমস্যাটি সমাধান হয়ে গেছে এবং আমি কী চাইছিলাম তা দেখতে আমি আবার গিট স্ট্যাটাস ব্যবহার করতে পারি ।
জোশ বুহলার

6
অমূল্য: আমি এতটা করেছি git config --global alias.ahead "log origin/master..HEAD --oneline"যে আমি কোথায় তাড়াতাড়ি জানতে পারি। আরও বেশি ক্যান্ডি:for i in *; do echo $i && git ahead 2>/dev/null; done
জেমি

15
git log --stat origin/master..HEADকিছুটা বাড়তি চমত্কারতার জন্য
কোরি ড্যানিয়েলসন

141
এটি সেরা সমাধান নয়। উত্স / মাস্টার সর্বদা উজানের শাখা নাও থাকতে পারে। প্রবাহিত শাখাটি চিহ্নিত করতে "উত্স / মাস্টার" এর পরিবর্তে @ {u use ব্যবহার করা আরও ভাল সমাধান। যেহেতু হেড ডিফল্টরূপে নিহিত, তাই কেউ এটিকেও ছেড়ে দিতে পারে। @ বেন লিংয়ের উত্তর দেখুন। বহির্গামী পরিবর্তনগুলি: গিট লগ @ {u} .. আগত পরিবর্তনগুলি: গিট লগ .. @ {u}
প্লেগহ্যামার

12
@ নচতুর্ন আমি কেবল এটিই উল্লেখ করতে চাই যে যখন এই উত্তরটি পোস্ট করা হয়েছিল তখন @{u}সিনট্যাক্সটি এখনও পাওয়া যায় নি, এটি কেবলমাত্র 12ফেব্রুয়ারী, 2010 এ উপলব্ধ হয়েছিল । এছাড়াও, @{u}স্থানীয় শাখা একটি উজানের সাথে কনফিগার করা না থাকলে কাজ করবে না। অবশেষে, @{u}বর্তমানে ট্যাব সমাপ্তির সমর্থন নেই, <remote>/<branch>ট্যাব সমাপ্তির সাথে এই তথ্যটি পাওয়ার দ্রুততম উপায়গুলির মধ্যে একটি রয়ে গেছে এবং এটি একটি প্রবাহকে কনফিগার করা আছে কিনা তা কাজ করবে।

703

আপনি যদি এখনও সমস্ত শাখাগুলিতে যে সমস্ত ধাক্কা দেয়নি এমন সমস্ত কটি কমিট দেখতে চান, আপনি সম্ভবত এর মতো কিছু খুঁজছেন:

git log --branches --not --remotes

এবং যদি আপনি কেবল প্রতিটি শাখায় সাম্প্রতিক প্রতিশ্রুতি এবং শাখার নাম দেখতে চান তবে এটি:

git log --branches --not --remotes --simplify-by-decoration --decorate --oneline

8
এটা সত্যিই দারুন. সম্পর্কিত দৃশ্যে আমার দুটি স্থানীয় শাখা ছিল দুটি উজানের শাখা, এবং একটি স্থানীয় হাত অন্যটিতে মিশে গেছে। আমি জানতে চেয়েছিলাম কোনটি প্রতিশ্রুতিগুলি পুনর্বাসনে নিরাপদ git log master..HEADছিল তবে একাধিক প্রবাহ প্রবাহিত হওয়ায় স্বাভাবিকটি কাজ করবে না। এই পোস্টটি আমাকে এমন git log MyBranch --not --remotesসমস্ত কমিটগুলি প্রদর্শন করতে পরিচালিত করেছিল যা কোনও শাখায় কোনও প্রবাহে ঠেলা যায়নি।
প্যাভন

এটি এতটাই কার্যকর ছিল যে আমি এটি আমার zsh কনফিগারেশনে এরিয়েজ করেছি। ধন্যবাদ।
স্কটি সি।

আমি বুঝতে পারি যে আপনার দ্বিতীয় কমান্ড সেই কমিটগুলিও তালিকাভুক্ত করছে যা এখনও ধাক্কা দেয় না, কেবল এটি শাখায় কেবল একটি দেখায়।
স্টিফেন

--decorateশাখা পাশাপাশি দেখায়। --graphএটি আরও সুস্পষ্ট করে তোলে।
রায়

নোট করুন যে এই কমান্ডের তালিকাটি কেবলমাত্র কমিট করে যা কোনও শাখায় ঠেলা যায়নি । উদাহরণ: বলুন যে শাখার কীর্তি-নিউ থিং দিয়ে আপনার শাখা বিকাশ হয়েছে। আপনি স্থানীয়ভাবে কীর্তি-নিউ টিহিং-এ পরিবর্তন করেন। (লগের পরিবর্তন রয়েছে)) তারপরে আপনি এটি প্রত্যন্ত শাখায় নতুন করে কীর্তি দিন। (লগ ফাঁকা) স্থানীয়ভাবে বিকাশ করার জন্য আপনি স্থানীয় কীর্তি-নতুন স্থানটিতে মার্জ করুন। দ্রুত-অগ্রসর হিসাবে ধরে নেওয়া, লগের এখনও কোনও পরিবর্তন নেই।
প্যাট্রিক ডব্লিউ

325

আপনার স্থানীয়ভাবে করা সমস্ত কমিটগুলি দেখাতে পারেন তবে এর সাথে আপস্ট্রিম নেই

git log @{u}..

@{u}বা এর @{upstream}অর্থ বর্তমান শাখার উজানের শাখা ( বিশদটি দেখুন git rev-parse --helpবা git help revisionsদেখুন)।


17
উইন্ডোজে, আমাকে উক্তিগুলিতে চূড়ান্ত যুক্তিটি আবদ্ধ করার দরকার ছিল, যেমন: গিট লগ "@ {ইউ} .."
জোন স্নাইডার

git log @{u}.. -p সর্বাধিক দরকারী বিকল্পগুলির মধ্যে একটি হল -p , যা প্রতিটি নিশ্চিতকরণে প্রবর্তিত পার্থক্যগুলি দেখায়।
mQuiroz

সম্ভবত আরও ভাল গিট লগ @ {ধাক্কা} .., অন্য উত্তর দেখুন
হ্যান্স-পিটার স্টার

183

এটি আমার পক্ষে কাজ করেছে:

git cherry -v 

গিট- তে নির্দেশিত হিসাবে : সমস্ত অনাবৃত কমিটস বা কমিটগুলি দেখুন যা অন্য কোনও শাখায় নেই


21
আমি মনে করি এটির প্রধান উত্তর হওয়া উচিত কারণ এইটি কমিটের পরিবর্তে কমিটের আরও সংক্ষিপ্ত তালিকা দেয়, পড়া শক্ত, সমস্ত ফাইলের মধ্যে ভার্জোজ পার্থক্য !!
ভিএফআই

1
গিট-চেরি - "ওপরে প্রবাহে প্রয়োগ করা এখনও কমিটস সন্ধান করুন" বলে মনে হয় যে ওপি যা চেয়েছিল তা সরবরাহ করে, তবে সম্পূর্ণ প্রতিশ্রুতি বার্তা না দিয়ে কেবল প্রতিশ্রুতিবদ্ধ বিষয় দিয়ে।
oদো 95

2
এটি লক্ষণীয় যে আপনি বর্তমানে যে শাখায় যাচাই করেছেন তার উপর যদি চাপ ছাড়ানো কমিট থাকে তবে এটি আপনাকে জানাতে পারে। এটি যদি আপনাকে কোনও স্থানীয় শাখা (বর্তমানে চেক আউট করা হয়নি) অপসারণিত কমিটস সহ করে না তা আপনাকে বলবে না।
ডেভ ইয়ারউড

66

আপনি এটি দিয়ে এটি করতে পারেন git log:

git log origin..

Assuming যে origin, আপনার মূল প্রজেক্টের নাম পরে সংশোধন নাম বন্ধ রেখে ..বোঝা HEAD, যা তালিকা নতুন করে যে ধাক্কা হয়নি।


1
যখনই আমি এতে একটি উত্তর দেখার git logএবং "2-বিন্দু নয় -3", এটা সবসময় আমাকে মনে করিয়ে stackoverflow.com/questions/53569/... );
VonC

1
কেবলমাত্র উত্তরে এটি যুক্ত করতে - কোনও আপস্ট্রিম সেটআপ না থাকলে এই কমান্ডটির ফলস্বরূপ কোনও আপস্ট্রিম সেটআপ ছিল না বলে ফল দেয়। চালান git branch --set-upstream master origin/<branch>সেটআপ মূল প্রজেক্টের জন্য আপনি যদি এই কমান্ড ব্যবহার করার জন্য বদ্ধ পরিকর যে মঞ্চস্থ দেখতে আনত হয় পারেন।
asyncwait

এটি মূল দূরবর্তী শাখার সাথে নয়, মূলতে ডিফল্ট শাখার সাথে তুলনা করবে।
গ্রেজ

43

অন্যান্য সমস্ত উত্তর "আপস্ট्रीम" (আপনি যে শাখাটি থেকে টানছেন) সম্পর্কে কথা বলে।
কিন্তু একটি স্থানীয় শাখা পারেন ধাক্কা একটি থেকে বিভিন্ন এক তা থেকে pulls তুলনায় শাখা।

masterদূরবর্তী ট্র্যাকিং শাখায় চাপ দিতে পারে না " origin/master"। মূল প্রজেক্টের জন্য শাখা হতে পারে , কিন্তু এটা দূরবর্তী ট্র্যাকিং শাখায় ধাক্কা পারে বা এমনকি । তাদের দ্বারা নির্ধারণ করা হয় বরাবর বর্তমান শাখা জন্য
masterorigin/masterorigin/xxxanotherUpstreamRepo/yyy
branch.*.pushremoteglobal remote.pushDefault মান ।

এটি সেই দূরবর্তী ট্র্যাকিং শাখা যা অনিয়ন্ত্রিত প্রতিশ্রুতি চাওয়ার সময় গণনা করে: স্থানীয় শাখাটিbranch at the remote যেখানে ঠেলাঠেলি করে সেখানে ট্র্যাক করে এমন একটি । আবার, হতে পারে বা এমনকি
branch at the remoteorigin/xxxanotherUpstreamRepo/yyy

গিট 2.5+ (কিউ 2 2015) এর জন্য একটি নতুন শর্টকাট প্রবর্তন করে: <branch>@{push}

দেখুন কমিট 29bc885 , 3dbe9db কমিট , adfe5d0 কমিট , 48c5847 কমিট , a1ad0eb কমিট , e291c75 কমিট , 979cb24 কমিট , 1ca41a1 কমিট , 3a429d0 কমিট , a9f9f8c কমিট , কমিট 8770e6f , da66b27 কমিট , কমিট f052154 , কমিট 9e3751d , ee2499f কমিট 21 মে থেকে [সব 2015], এবং জেফ কিং ( ) এর দ্বারা 01 ই বিবি 35 [01 মে 2015] প্রতিশ্রুতিবদ্ধ । (দ্বারা একীভূতpeff
জুনিও সি হামানো মার্জড - gitster-মধ্যে c4a8354 কমিট , 05 জুন 2015)

প্রতিশ্রুতিবদ্ধ adfe5d0 ব্যাখ্যা:

sha1_name: @{push}শর্টহ্যান্ড বাস্তবায়ন

ত্রিভুজাকার ওয়ার্কফ্লোতে প্রতিটি শাখার দুটি স্বতন্ত্র পয়েন্ট থাকতে পারে: @{upstream}আপনি সাধারণত যেখান থেকে টানেন এবং যে গন্তব্যটি আপনি সাধারণত দিকে নিয়ে যান। পরেরটির জন্য সংক্ষিপ্তকরণ নেই, তবে এটি থাকা দরকারী।

উদাহরণস্বরূপ, আপনি জানতে চান আপনি কোনটি প্রতিশ্রুতিবদ্ধ করেননি এখনও :

git log @{push}..

বা আরও জটিল উদাহরণ হিসাবে, কল্পনা করুন যে আপনি সাধারণত origin/master(যা আপনি নিজের হিসাবে সেট করেছেন @{upstream}) থেকে পরিবর্তনগুলি টানুন এবং নিজের ব্যক্তিগত কাঁটাচামচ (যেমন, হিসাবে myfork/topic) পরিবর্তনগুলি ধাক্কা ।
আপনি একাধিক মেশিন থেকে আপনার কাঁটাচামচ থেকে ধাক্কা পারে, আপনার প্রয়োজন বরং মূল প্রজেক্টের চেয়ে ধাক্কা গন্তব্য থেকে পরিবর্তনগুলি একীভূত,
এই প্যাচ দিয়ে, আপনি ঠিক করতে পারেন:

git rebase @{push}

পুরো নাম টাইপ করার চেয়ে।

কমিট 29 বিসি 885 যোগ করেছে:

for-each-ref: " %(push)" ফর্ম্যাটটি গ্রহণ করুন

ঠিক যেমন আমরা আছে " %(upstream)" রিপোর্ট করার জন্য " @{upstream}" প্রতিটি সুত্র জন্য, এই প্যাচ যোগ করা " %(push)" মেলে " @{push}"।
এটি আপস্ট্রিমের মতো একই ট্র্যাকিং ফর্ম্যাট সংশোধককে সমর্থন করে (কারণ আপনি জানতে চাইতে পারেন, উদাহরণস্বরূপ, কোন শাখায় চাপ দেওয়ার জন্য প্রতিশ্রুতি রয়েছে )।

আপনি যে শাখায় চাপ দিচ্ছেন তার তুলনায় আপনার স্থানীয় শাখাগুলি কতগুলি এগিয়ে / পিছনে রয়েছে তা যদি আপনি দেখতে চান :

git for-each-ref --format="%(refname:short) %(push:track)" refs/heads

42

বর্তমান শাখায় অনাবৃত কমিটস অনুসন্ধানের জন্য হ্যান্ডি গিট ওরফে :

alias unpushed = !GIT_CURRENT_BRANCH=$(git name-rev --name-only HEAD) && git log origin/$GIT_CURRENT_BRANCH..$GIT_CURRENT_BRANCH --oneline

এটি মূলত যা করে:

git log origin/branch..branch

তবে বর্তমান শাখার নামও নির্ধারণ করে।


8
এটা সত্যিই দারুন! এলিয়াসগুলির সাথে অপরিচিত যারা কেবল তাদের [ওরফে] বিভাগের অধীনে আপনার ~ / .gitconfig ফাইলে যুক্ত করুন।
গ্যারি হারান


@ গ্যারিহরণ নির্দেশ করে বলে এটি কোনও বাশ ওরফে নয়। এলিয়াস যুক্ত করার জন্য একটি গিট কমান্ডও রয়েছে: git alias <alias-name> <command>এই ক্ষেত্রে শেল থেকে বিশেষ অক্ষরগুলি রক্ষা করতে কমান্ডটি একক উদ্ধৃতি দ্বারা ঘিরে রাখা উচিত।
দাগ হিডাহল

4
এটি হবে:git config --global alias.unpushed '!GIT_CURRENT_BRANCH=$(git name-rev --name-only HEAD) && git log origin/$GIT_CURRENT_BRANCH..$GIT_CURRENT_BRANCH --oneline'
রিকি লেভি

এটি মূলত গিট লগ হিসাবে একই বলে মনে হচ্ছে @ {u} .., যদিও - আরও একটি উত্তর দেখুন
হ্যান্স-পিটার স্টার

35

আপনি চেষ্টা করতে পারেন....

gitk

আমি জানি এটি কোনও খাঁটি কমান্ড লাইন বিকল্প নয় তবে আপনি যদি এটি ইনস্টল করে থাকেন এবং কোনও জিইআইআই সিস্টেমে থাকেন তবে ঠিক কী কী আপনি চেয়েছেন তা দেখার আরও দুর্দান্ত উপায় এবং আরও অনেক কিছু।

(আমি আসলে এতক্ষণ অবাক হয়েছি যে এ পর্যন্ত কেউ এর উল্লেখ করেনি।)


3
gitk --allসমস্ত শাখা দেখার জন্য।
রায়

3
tigncurses বিকল্প।
রায়

@ জাস্টিন-ওহমস gitkদুর্দান্ত! কখনই জানত না এই বিদ্যমান! একটি দুর্দান্ত UI- র পরিবর্তনের মাধ্যমে ব্রাউজ করার সুবিধাজনক।
রফিআলহামাদ

@ray tig'টার্মিনাল কেবল' পরিস্থিতিতে সবচেয়ে কার্যকর - যেখানে আপনি ডেস্কটপ জিইউআই অ্যাক্সেস পান না। প্রথমবারের মতো এটি সম্পর্কে শিখছি! আগ্রহী: এর tigসত্য git!
রফিআলহামাদ

30

git branch -v প্রতিটি স্থানীয় শাখার জন্য দেখাবে, এটি "এগিয়ে" আছে কিনা whether


2
হ্যাঁ, যদি শাখায় কোনও চাপ ছাড়ানো প্রতিশ্রুতি থাকে develতবে সংশ্লিষ্ট লাইনটি হবে * devel 8a12fc0 [ahead 1] commit msg( *কেবলমাত্র চেক আউট শাখার সাথে সম্পর্কিত লাইনে থাকবে )। ahead 1এর অর্থ "সামনের দিকে এক প্রতিশ্রুতি", অর্থাত একটি চাপ ছাড়াই প্রতিশ্রুতি রয়েছে।
অরেলিন

2
তাই না git branch -vv? Cf. দস্তাবেজ: "যদি দু'বার দেওয়া হয় তবে উজানের শাখার নামটিও মুদ্রণ করুন (গিট দূরবর্তী শো <<ote> দেখুন)"
ডার্টি হেনরি

এটি উজানের শাখার নাম মুদ্রণের বিষয়ে নয়, কেবল মুদ্রণ behindএবং / অথবা aheadপ্রতিটি স্থানীয় শাখার জন্য, যা ওপির সমস্যা সমাধানের জন্য যথেষ্ট (শৃঙ্খলাবদ্ধ শৃঙ্খলা সনাক্তকরণ)। git branch -vযে জন্য যথেষ্ট, শুধু গীত 2.16.2 সঙ্গে :) আবার পরীক্ষা করা হয়
Aurelien

-Vv দরকারী কারণ এটি শাখাগুলির মধ্যে একটি পার্থক্য দেখায় যা রিমোটের সাথে আপ টু ডেট থাকে এবং যেগুলি একেবারেই ধাক্কা দেয় নি। (মাত্র এক-ভি দিয়ে, তারা প্রদর্শনে অভিন্নরূপে প্রদর্শিত হবে show)
আরএম

30

আমি পূর্বে একটি প্রতিশ্রুতি দিয়েছিলাম, কোনও শাখায় না ধাক্কা দিয়েছি, না দূরবর্তী বা স্থানীয়। শুধু প্রতিশ্রুতিবদ্ধ। অন্যান্য উত্তর থেকে কিছুই আমার পক্ষে কাজ করেনি, তবে এর সাথে:

git reflog

সেখানে আমি আমার প্রতিশ্রুতি খুঁজে পেলাম।


এই লিঙ্কটি git-scm.com/docs/git-reflog , রেফারেন্স লগস বা "রিফ্লাগস" এ যেমন বলা হয়েছে , স্থানীয় সংগ্রহস্থলে শাখা এবং অন্যান্য রেফারেন্সগুলির টিপস আপডেট হওয়ার পরে রেকর্ড করুন। আমার ক্ষেত্রে, আমি একটি রেপো ক্লোন করেছি, একটি নতুন শাখা তৈরি করেছি, শাখাটি মুছে ফেলেছি, একটি নতুন তৈরি করেছি, একটি প্রতিশ্রুতি তৈরি করেছি এবং প্রতিশ্রুতি পরিবর্তন করেছি। এই সমস্ত পদক্ষেপগুলি যেখানে হেড @ {0} হিসাবে রেকর্ড করা হয়েছে: কমিট (সংশোধন): .. হেড @ {1}: কমিট: ... হেড @ {2}: চেকআউট: ... থেকে সরানো ... হেড @ { 3}: চেকআউটআউট: ... থেকে সরানো ... হেড @ {4}: ক্লোন: # সরি থেকে ফর্ম্যাটটির জন্য এসও আপাতদৃষ্টিতে মন্তব্যে মাল্টিলিনগুলিকে অনুমতি দেয় না
বেগ

এই পাশাপাশি উৎপত্তি করে অন্তর্ভুক্ত, সবচেয়ে ভালো সমাধান @PlagueHammer (দ্বারা উপলব্ধ কমান্ড ব্যবহার করা হবে stackoverflow.com/a/2016954/624048 )
লিঙ্কন

20

প্রতিশ্রুতিবদ্ধ হয়েছে তবে ধাক্কা দেওয়া হয়নি (কেবলমাত্র বর্তমান শাখার জন্য) কেবলমাত্র ফাইলের (এবং স্থিতি) তালিকা পেতে আমি নীচের উপনামটি ব্যবহার করি

git config --global alias.unpushed \
"diff origin/$(git name-rev --name-only HEAD)..HEAD --name-status"

তাহলে ঠিক করুন:

git unpushed

আকর্ষণীয় দেখায় তবে $ (গিট নাম-রেভ - নাম-কেবলমাত্র হেড) আমার ক্ষেত্রে "অপরিজ্ঞাত"
ভাক

13

আমি বিশ্বাস করি এটির সর্বাধিক সাধারণ উপায় হ'ল এরকম কিছু চালানো:

git cherry --abbrev=7 -v @{upstream}

তবে আমি ব্যক্তিগতভাবে দৌড়াতে পছন্দ করি:

git log --graph --decorate --pretty=oneline --abbrev-commit --all @{upstream}^..

যা সমস্ত শাখাগুলির সমঝোতাগুলি দেখায় যা প্রবাহে একীভূত নয়, এবং শেষ প্রবাহে শেষ প্রতিশ্রুতি (যা অন্য সমস্ত কমিটির জন্য মূল নোড হিসাবে দেখায়)। আমি এটি প্রায়শই ব্যবহার করি যে এর জন্য আমি ওরফে noupতৈরি করেছি।

git config --global alias.noup \
'log --graph --decorate --pretty=oneline --abbrev-commit --all @{upstream}^..'

11

আমি আপনাকে https://github.com/badele/gitcheck স্ক্রিপ্টটি দেখতে যেতে পরামর্শ দিই , আমি আপনার সমস্ত গিট রিপোজিটরিগুলি এক পাসে চেক করার জন্য এই স্ক্রিপ্টটি কোড এবং এটি দেখায় যে কে কমিট করেনি এবং কে ঠেলাঠেলি / টানেনি।

এখানে একটি নমুনা ফলাফল এখানে চিত্র বর্ণনা লিখুন


1
উইন্ডোজ মেশিনে এই প্লাগিনটি কীভাবে কাজ করবেন তা কী আপনি দয়া করে ব্যাখ্যা করতে পারেন? আমি পাইপ চালানোর চেষ্টা করছি, তবে কমান্ড লাইনে কমান্ডটি অনুপস্থিত। আমি পাইথন ইনস্টল করেছি, তবে এটি যথেষ্ট কিনা তা আমি নিশ্চিত নই।
কনরাড সাজাভিস্কি

@ KonradSzałwiński আমি জানালা মেশিন আছে, কিন্তু এই বিষয়ে (ইন stackoverflow.com/questions/4750806/... ), তাহলে আপনার প্রশ্নের :) এ উত্তর বলে মনে হচ্ছে। তবে আমি উইন্ডোতে পরীক্ষা করিনি এবং আমি নিশ্চিত এটি এটি কাজ করে না।
ব্রুনো অ্যাডেলি

@ KonradSzałwiński ক্রিশ্চিয়ানট্রেম্বলে গিথুব অবদানকারী একটি উইন্ডোজ সমর্থন যুক্ত করেছেন। উইন্ডোতে এখন গিচেক কাজ করছে। আপনি এটি github.com/badele/gitcheck এ
ব্রুনো অ্যাডেল

এখন, আপনি সরাসরি ডকারের ধারক (আপনার হোস্টে থাকা ফাইলগুলি সহ) থেকে সরাসরি গিচেক ব্যবহার করতে পারেন আরও তথ্যের জন্য গিচচিঠ গিথুব প্রকল্পটি দেখুন
ব্রুনো অ্যাডেল é মে'১

এটি পোস্ট করার জন্য ধন্যবাদ, এটি সত্যিই দরকারী বলে মনে হচ্ছে। আমি ইনস্টল করার চেষ্টা করেছি তবে ইনস্টলেশন করার পরে স্ক্রিপ্টটি চালানোর জন্য অবস্থানটি খুঁজে পাচ্ছি না। $ পাইপ ইনস্টল গিট + গিট: //github.com/badele/gitcheck.git সংগ্রহ গিট + গিট: //github.com/badele/gitcheck.git ক্লোনিং গিট: //github.com/badele/gitcheck.git সি : \ ব্যবহারকারীরা 60 u6041501 \ অ্যাপডাটা \ লোকাল \ টেম্প \ পিপ- bxt472z_-build সংগৃহীত প্যাকেজ ইনস্টল করছে: gitcheck gitcheck জন্য setup.py ইনস্টল চালানো: শুরু হয়েছে জিপচেকের জন্য সেটআপ.পি ইনস্টল: স্ট্যাটাস 'সম্পন্ন' দিয়ে সফলভাবে ইনস্টল gitcheck-0.3 .22
লরেন ফিচ


9

এটি একটি বাগ নয়। আপনি সম্ভবত যা দেখছেন তা হ'ল ব্যর্থ অটো-মার্জ হওয়ার পরে যেখানে রিমোট থেকে পরিবর্তনগুলি আনা হয়েছে তবে এখনও মার্জ হয়নি।

স্থানীয় রেপো এবং রিমোটের মধ্যে কমিটগুলি দেখতে এটি করতে:

git fetch

এটি 100% নিরাপদ এবং আপনার কাজের অনুলিপিটিকে উপহাস করবে না। যদি পরিবর্তনগুলি git statusউইল শো ছিলX commits ahead of origin/master

আপনি এখন কমিটের লগ প্রদর্শন করতে পারেন যা দূরবর্তী অঞ্চলে তবে স্থানীয় নয়:

git log HEAD..origin

8

এটি আমার পক্ষে আরও ভাল কাজ করেছে:

git log --oneline @{upstream}..

বা:

git log --oneline origin/(remotebranch)..

2
অন্য যে কেউ ভাবছেন, @{upstream}এটি আক্ষরিক ( upstreamএকটি যাদু শব্দ), তবে remotebranchএটি কেবল আপনার শাখার নাম।
স্টিভ বেনেট 0

7

আনপশড নামের একটি সরঞ্জাম রয়েছে যা নির্দিষ্ট কার্যকারী ডিরেক্টরিতে সমস্ত গিট, মার্কিউরিয়াল এবং সাবভার্সন রেপো স্ক্যান করে এবং অসমাপ্ত ফাইল এবং আনপিশড কমিটের তালিকা প্রদর্শন করে। লিনাক্সের অধীনে ইনস্টলেশন সহজ:

$ easy_install --user unpushed

অথবা

$ sudo easy_install unpushed

সিস্টেম-ব্যাপী ইনস্টল করতে।

ব্যবহার খুব সহজ:

$ unpushed ~/workspace
* /home/nailgun/workspace/unpushed uncommitted (Git)
* /home/nailgun/workspace/unpushed:master unpushed (Git)
* /home/nailgun/workspace/python:new-syntax unpushed (Git)

আরও তথ্যের জন্য দেখুন unpushed --helpবা অফিসিয়াল বিবরণ । এটিতে অসমাপ্ত unpushed-notifyএবং অপশক্ত পরিবর্তনগুলির অন স্ক্রিন বিজ্ঞপ্তির জন্য ক্রোনজব স্ক্রিপ্টও রয়েছে ।


5

সমস্ত শাখায় সমস্ত চাপ ছাড়াই প্রতিশ্রুতিবদ্ধতার তালিকা সহজেই আপনি এই আদেশটি ব্যবহার করতে পারেন:

 git log --branches  @{u}..

4

অনুরূপ: নিমজ্জিত শাখা দেখতে:

git branch --all --no-merged

এগুলি সন্দেহজনক হতে পারে তবে আমি উত্তরটি সিএসরেগের মাধ্যমে সুপারিশ করি


3

যদি কমিটের সংখ্যা বের করা হয় নি তবে যদি একক অঙ্কের সংখ্যা হয়, যা এটি প্রায়শই হয় তবে সবচেয়ে সহজ উপায়:

$ git checkout

গিট আপনাকে জানায় যে আপনার উত্সের তুলনায় আপনি "এগিয়ে এন কমিট" আছেন। সুতরাং এখন লগগুলি দেখার সময় সেই সংখ্যাটি মনে রাখবেন। আপনি যদি "3 টি কমিট দ্বারা এগিয়ে" হন তবে ইতিহাসে শীর্ষ 3 টি কমিট এখনও ব্যক্তিগত।


2

জিনিসগুলি করার একটি উপায় হ'ল এক শাখায় উপলব্ধ কমিটগুলি তালিকাভুক্ত করা কিন্তু অন্যটি নয়।

git log ^origin/master master

'^' চরিত্রটি কী করে?
অরণ মুলহোল্যান্ড

@ আরান মুলহোল্যান্ড এটি এখানে নয়।
অ্যালেক্স

1

যেমন উপরে বলা হয়েছে:

গিফ ডিফারেন্স উত্স / মাস্টার..ইহেড

তবে আপনি যদি গিট গুই ব্যবহার করছেন

গুই ইন্টারফেস খোলার পরে, "সংগ্রহস্থল" নির্বাচন করুন -> এর " ভিজ্যুয়ালাইজ ইতিহাস Under" " এর

দ্রষ্টব্য: কিছু লোক সিএমডি প্রম্পট / টার্মিনাল ব্যবহার করতে পছন্দ করেন আবার কেউ কেউ গিট জিইউআই ব্যবহার করতে পছন্দ করেন (সরলতার জন্য)


গিট গুইতে ভিজ্যুয়ালাইজ অপশনটি হ'ল।
রাজেশ কোলহাপুরে

-2

এখানে আমার বহনযোগ্য সমাধান (শেল স্ক্রিপ্ট যা উইন্ডোজে অতিরিক্ত ইনস্টল না করে খুব কার্যকরভাবে কাজ করে) যা সমস্ত শাখার জন্য উত্স থেকে পার্থক্য দেখায়: গিট-ফেচ-লগ

একটি উদাহরণ আউটপুট:

==== branch [behind 1]

> commit 652b883 (origin/branch)
| Author: BimbaLaszlo <bimbalaszlo@gmail.com>
| Date:   2016-03-10 09:11:11 +0100
|
|     Commit on remote
|
o commit 2304667 (branch)
  Author: BimbaLaszlo <bimbalaszlo@gmail.com>
  Date:   2015-08-28 13:21:13 +0200

      Commit on local

==== master [ahead 1]

< commit 280ccf8 (master)
| Author: BimbaLaszlo <bimbalaszlo@gmail.com>
| Date:   2016-03-25 21:42:55 +0100
|
|     Commit on local
|
o commit 2369465 (origin/master, origin/HEAD)
  Author: BimbaLaszlo <bimbalaszlo@gmail.com>
  Date:   2016-03-10 09:02:52 +0100

      Commit on remote

==== test [ahead 1, behind 1]

< commit 83a3161 (test)
| Author: BimbaLaszlo <bimbalaszlo@gmail.com>
| Date:   2016-03-25 22:50:00 +0100
|
|     Diverged from remote
|
| > commit 4aafec7 (origin/test)
|/  Author: BimbaLaszlo <bimbalaszlo@gmail.com>
|   Date:   2016-03-14 10:34:28 +0100
|
|       Pushed remote
|
o commit 0fccef3
  Author: BimbaLaszlo <bimbalaszlo@gmail.com>
  Date:   2015-09-03 10:33:39 +0200

      Last common commit

লগের জন্য প্যারামিটারগুলি পাস হয়েছে, যেমন --onelineবা --patchব্যবহার করা যেতে পারে।


-3
git show

আপনার স্থানীয় কমিটগুলিতে সমস্ত ভিন্নতা প্রদর্শন করবে।

git show --name-only

স্থানীয় কমিট আইডি এবং কমিটের নাম প্রদর্শন করবে।


3
git showকেবল সাম্প্রতিক প্রতিশ্রুতি দেখায়, এটি রিমোটে ধাক্কা দেওয়া হয়েছে কি না, এটি আপনাকে আপনার সমস্ত চাপছাড়া কমিটগুলি প্রদর্শন করবে না।

-6
git diff origin

ধরে নিচ্ছি যে আপনার শাখাটি উত্সটি ট্র্যাক করার জন্য সেট আপ করা হয়েছে, তারপরে এটি আপনাকে পার্থক্যগুলি দেখায়।

git log origin

আপনাকে কমিটগুলির একটি সারাংশ দেবে।


3
git log originআপনাকে এমন প্রতিশ্রুতি দেখাবে যা ইতিমধ্যে ধাক্কা দেওয়া হয়েছে , তবে এটি এমন প্রতিশ্রুতি প্রদর্শন করবে না যেগুলি ধাক্কা দেওয়া হয়নি , যা মূল পোস্টারটি যা চেয়েছিল তার প্রান্তে আরও বেশি।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.