গিট -এ কোনও নির্দিষ্ট ফাইলের নির্দিষ্ট সংস্করণটি দেখতে পাবেন (হয় স্টডআউটে ডাম্পড, অথবা $PAGER
অথবা $EDITOR
)
git checkout <sha1-of-the-commit-you-need>
, তারপরে, করুনgit checkout HEAD
গিট -এ কোনও নির্দিষ্ট ফাইলের নির্দিষ্ট সংস্করণটি দেখতে পাবেন (হয় স্টডআউটে ডাম্পড, অথবা $PAGER
অথবা $EDITOR
)
git checkout <sha1-of-the-commit-you-need>
, তারপরে, করুনgit checkout HEAD
উত্তর:
আপনি git show
সংগ্রহস্থলের মূল থেকে কোনও পাথ ( ./
বা ../
আপেক্ষিক পথের জন্য) ব্যবহার করতে পারেন :
$ git show REVISION:path/to/file
REVISION
আপনার আসল সংশোধন দিয়ে প্রতিস্থাপন করুন (গিট কমিট এসএইচএ, কোনও ট্যাগের নাম, একটি শাখার নাম, আত্মীয় প্রতিশ্রুতিবদ্ধ নাম, বা গিটে প্রতিশ্রুতি সনাক্তকরণের অন্য কোনও উপায়)
উদাহরণস্বরূপ, <repository-root>/src/main.c
4 টি কমিট আগে ফাইলের সংস্করণটি দেখতে , ব্যবহার করুন:
$ git show HEAD~4:src/main.c
উইন্ডোজের গিটের জন্য বর্তমান ডিরেক্টরি সম্পর্কিত পাথগুলিতেও ফরোয়ার্ড স্ল্যাশ প্রয়োজন । আরও তথ্যের জন্য, ম্যান পৃষ্ঠাটি দেখুন git-show
।
তারিখ অনুসারে এটি করা দেখে মনে হচ্ছে:
git show HEAD@{2013-02-25}:./fileInCurrentDirectory.txt
দ্রষ্টব্যটির HEAD@{2013-02-25}
অর্থ এই যে " এইচডিএইড 2013-02-25 এ ছিল" এই ভাণ্ডারে ( রিফ্লগ ব্যবহার করে ) "ইতিহাসের এই শাখায় 2013-02-25 এর আগে শেষ প্রতিশ্রুতি নয়"।
master
HEAD@{2013-02-25}
git log --since='2016-04-28 23:59:59 +0100'
?
আপনি যদি জিইউআই পছন্দ করেন তবে আপনি গিটক ব্যবহার করতে পারেন:
গিটক দিয়ে শুরু করুন:
gitk /path/to/file
পর্দার উপরের অংশে সংশোধন চয়ন করুন, উদাহরণস্বরূপ বা তারিখ অনুসারে by ডিফল্টরূপে, পর্দার নীচের অংশটি সেই সংশোধনের জন্য পৃথক দেখায়, ("প্যাচ" রেডিও বোতামের সাথে সম্পর্কিত)।
নির্বাচিত সংশোধনের জন্য ফাইলটি দেখতে:
gitk REVISION /path/to/file
। আপনি উদাহরণস্বরূপ কোনও নির্দিষ্ট সংস্করণের বিপরীতে পরীক্ষা করতে চাইলে এটি কার্যকর হতে পারে।
আপনি কমান্ড সহ একটি commit hash
(প্রায়শই ডাকাও commit ID
) নির্দিষ্ট করতে পারেন ।git show
git show <commitHash>:/path/to/file
git log /path/to/file
commit hash
মতো দেখায়commit 06c98...
commit hash
git show <commitHash>:/path/to/file
ব্যবহার করে কমান্ডটি চালান Runcommit hash
path/to/file
দ্রষ্টব্য:./
আপেক্ষিক পথ নির্দিষ্ট করার সময় যুক্ত করা গুরুত্বপূর্ণ মনে হয়, যেমন git show b2f8be577166577c59b55e11cfff1404baf63a84:./flight-simulation/src/main/components/nav-horiz.html
।
git show <SHA1> --name-only
এটি পেতে ব্যবহার করুন ।
জিম হুনজিকার ছাড়াও উত্তর ,
আপনি পুনর্বিবেচনা থেকে ফাইলটি এক্সপোর্ট করতে পারেন হিসাবে,
git show HEAD@{2013-02-25}:./fileInCurrentDirectory.txt > old_fileInCurrentDirectory.txt
আশাকরি এটা সাহায্য করবে :)
কোনও ফাইলের পুরানো সংশোধনগুলির সাথে তফাতগুলি দ্রুত দেখতে:
git show -1 filename.txt
> ফাইলের সর্বশেষ সংশোধনের সাথে তুলনা করতে
git show -2 filename.txt
> ২ য় সর্বশেষ সংশোধনের বিপরীতে তুলনা করতে
git show -3 fielname.txt
> সর্বশেষ 3 য় সর্বশেষ সংশোধনের সাথে তুলনা করতে
git log -p
আপনাকে কেবল প্রতিশ্রুতিবদ্ধ লগগুলিই নয় প্রতিটি প্রতিশ্রুতির ভিন্নতা (মার্জ কমিটস বাদে) প্রদর্শন করবে। তারপরে আপনি টিপুন /
, ফাইলের নাম লিখুন এবং টিপতে পারেন enter
। টিপুন n
বা p
পরবর্তী / পূর্ববর্তী ঘটনাটিতে যেতে। এইভাবে আপনি কেবল ফাইলের পরিবর্তনগুলি দেখতে পাবেন না তবে প্রতিশ্রুতিবদ্ধ তথ্যও পাবেন।
git log -pm
মার্জ কমিটগুলিও প্রদর্শন করবে।
git log -p -- filename.txt
কেবলমাত্র কাঙ্ক্ষিত ফাইলে ইতিহাসকে সীমাবদ্ধ রাখতে চালাতে পারেন ।
আপনি আলাদা আলাদা ফাইলগুলিতে ফাইলের সমস্ত সংস্করণ ডাম্প করতে এই জাতীয় স্ক্রিপ্ট ব্যবহার করতে পারেন:
যেমন
git_dump_all_versions_of_a_file.sh path/to/somefile.txt
অন্য অনুরূপ প্রশ্নের উত্তর হিসাবে স্ক্রিপ্টটি এখানে পান
git_root
, git_log_short
এবং git_log_message_for_commit
অনুপস্থিত।
উপায় 1: (আমি এইভাবে পছন্দ করি)
git reflog
git diff-tree --no-commit-id --name-only -r <commitHash>
উদাহরণ:
git diff-tree --no-commit-id --name-only -r d2f9ba4
// "d2f9ba4" "১" থেকে কমিট আইডি
git show <commitHash>:/path/to/file
উদাহরণ:
git show d2f9ba4:Src/Ext/MoreSwiftUI/ListCustom.swift
// "এসসিআর / ..." হ'ল "২" থেকে ফাইল পথ
উপায় 2:
git reflog
git reset --hard %commit ID%
গিট রিসেট - চার্জ c14809fa
প্রদত্ত সংশোধন থেকে একাধিক ফাইল আনতে সহায়ক
মার্জ সংঘাতগুলি সমাধান করার চেষ্টা করার সময়, এই সহায়কটি খুব দরকারী:
#!/usr/bin/env python3
import argparse
import os
import subprocess
parser = argparse.ArgumentParser()
parser.add_argument('revision')
parser.add_argument('files', nargs='+')
args = parser.parse_args()
toplevel = subprocess.check_output(['git', 'rev-parse', '--show-toplevel']).rstrip().decode()
for path in args.files:
file_relative = os.path.relpath(os.path.abspath(path), toplevel)
base, ext = os.path.splitext(path)
new_path = base + '.old' + ext
with open(new_path, 'w') as f:
subprocess.call(['git', 'show', '{}:./{}'.format(args.revision, path)], stdout=f)
ব্যবহার:
git-show-save other-branch file1.c path/to/file2.cpp
ফলাফল: নিম্নলিখিত ফাইলগুলির বিকল্প সংস্করণ রয়েছে:
file1.old.c
path/to/file2.old.cpp
এইভাবে, আপনি ফাইল এক্সটেনশানটি রাখেন যাতে আপনার সম্পাদক অভিযোগ না করে এবং সহজেই নতুনটির ঠিক পাশেই পুরানো ফাইলটি খুঁজে পেতে পারেন।