গিটহাব কি প্যাচ ফর্মের মধ্যে একটি ফাইলে করা পরিবর্তনগুলির ইতিহাস দেখাতে পারে?


89

আপনি যদি git log --patch -- path/to/fileএটি করেন তবে প্রতিটি প্রতিশ্রুতি দিয়ে এর পরিবর্তিত সমস্ত পরিবর্তনের একটি ভিন্নতার সাথে আপনি ফাইলটির ইতিহাস পাবেন:

$ git log --patch -- git-rebase.sh

commit 20351bb06bf4d32ef3d1a6849d01636f6593339f
Author: Ramkumar Ramachandra <artagnon@gmail.com>
Date:   Sat Jun 15 18:43:26 2013 +0530

    rebase: use 'git stash store' to simplify logic

    rebase has no reason to know about the implementation of the stash.  In
    the case when applying the autostash results in conflicts, replace the
    relevant code in finish_rebase () to simply call 'git stash store'.

    Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff --git a/git-rebase.sh b/git-rebase.sh
index d0c11a9..17be392 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -153,11 +153,8 @@ finish_rebase () {
                then
                        echo "$(gettext 'Applied autostash.')"
                else
-                       ref_stash=refs/stash &&
-                       >>"$GIT_DIR/logs/$ref_stash" &&
-                       git update-ref -m "autostash" $ref_stash $stash_sha1 ||
-                       die "$(eval_gettext 'Cannot store $stash_sha1')"
-
+                       git stash store -m "autostash" -q $stash_sha1 ||
+                       die "$(eval_gettext "Cannot store \$stash_sha1")"
                        gettext 'Applying autostash resulted in conflicts.
 Your changes are safe in the stash.
 You can run "git stash pop" or "git stash drop" it at any time.

commit 2e6e276decde2a9f04fc29bce734a49d3ba8f484
Author: Ramkumar Ramachandra <artagnon@gmail.com>
Date:   Fri Jun 14 18:47:52 2013 +0530

    rebase: use peel_committish() where appropriate

    The revisions specified on the command-line as <onto> and <upstream>
    arguments could be of the form :/quuxery; so, use peel_committish() to
    resolve them.  The failing tests in t/rebase and t/rebase-interactive
    now pass.

    Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff --git a/git-rebase.sh b/git-rebase.sh
index d0c11a9..6987b9b 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -434,7 +434,7 @@ then
                shift
                ;;
        esac
-       upstream=`git rev-parse --verify "${upstream_name}^0"` ||
+       upstream=$(peel_committish "${upstream_name}") ||
        die "$(eval_gettext "invalid upstream \$upstream_name")"
        upstream_arg="$upstream_name"
 else
@@ -470,7 +470,7 @@ case "$onto_name" in
        fi
        ;;
 *)
-       onto=$(git rev-parse --verify "${onto_name}^0") ||
+       onto=$(peel_committish "$onto_name") ||
        die "$(eval_gettext "Does not point to a valid commit: \$onto_name")"
        ;;
 esac

আমি গিটহাবের ওয়েব ইন্টারফেস (কমান্ড লাইন নয়) ব্যবহার করে একই ধরণের ফর্ম্যাট পেতে সক্ষম হতে চাই এবং কোডটি ছাড়াই অন্য কাউকে প্রেরণের জন্য একটি লিঙ্ক চাই।


তুলনা দর্শন আপনাকে যা সন্ধান করছে তার কাছাকাছি কিছু দেয় তবে দুর্ভাগ্যক্রমে এটি কোনও পৃথক ফাইলের জন্য নয়।

4
যদি আপনি এটির জন্য কোনও বৈশিষ্ট্যটির অনুরোধ করেন তবে সম্ভবত গিটহাব দেব দল এটি যুক্ত করবে।

উত্তর:


84

নিম্নলিখিত URL টি অনুরূপ ফর্ম্যাটে একক ফাইলের জন্য সমস্ত চুক্তি প্রদর্শন করবে git log -p:

http://github.com/<username>/<project>/commits/<branch>/<path/to/file>

...কোথায়:

  • <username> রেপোর মালিক এমন ব্যক্তির ব্যবহারকারীর নাম
  • <project> রেপুর নাম
  • <branch> 'মাস্টার' বা অন্য কোনও শাখা হতে পারে
  • <path/to/file> আশাকরি স্ব-ব্যাখ্যামূলক

(কিছুটা) এলোমেলোভাবে বাছাই করা, এখানে ভিএম-পলাতক রেপো থেকে একটি উদাহরণ ।


+1 সেই করে এপিআই আরও: develop.github.com/p/commits.html (GitHub এপিআই বিভাগে develop.github.com )
VonC

18
এটি গিট লগ পাথ / টু / ফাইল। আমি গিট লগ-পি পাথ / টু / ফাইল চাই।
ma11hew28

4
যা কিছু করা হয় তা সর্বশেষ আপডেট দেখানো হয়, আপডেটের ইতিহাস নয়।
গেরি

4
আমি জানি না কেন এটি ভোট দিচ্ছে। আমার ধারণা, লোকেরা মনোযোগ দিয়ে প্রশ্নটি পড়ছে না। এই উত্তরটি আপনাকে বিভিন্ন মতবিরোধের একটি তালিকা দেয় না git log --patch -- path/to/fileযা ওপি যা চেয়েছিল তা।
jcoffland

4
@ জ্যাকফল্যান্ডটি এটি উত্সাহিত করা হচ্ছে কারণ আমার মতো বেশিরভাগ লোকেরা এটি সহায়ক বলে মনে করেন এবং ঠিক এটিই আমরা খুঁজছি, যদিও অপটির প্রশ্নটিকে উপেক্ষা করে।
এমআর 5

49

উপরের উত্তরগুলি এবং এই সঠিক বৈশিষ্ট্যটি অনুসন্ধান করার জন্য আমার নিজের প্রচেষ্টার উপর ভিত্তি করে, এটি প্রদর্শিত হয় এই প্রশ্নের সঠিক উত্তর নেই

সম্পাদনা করুন: ভোট দেওয়ার আগে, চেষ্টা করে আমাকে ভুল প্রমাণ করুন। কখনও কখনও সঠিক উত্তর আপনি শুনতে চান না।


4
এটি প্রশ্নের উত্তর দেয় না। কোনও লেখকের কাছ থেকে সমালোচনা বা স্পষ্টতার জন্য অনুরোধ জানাতে, তাদের পোস্টের নীচে একটি মন্তব্য দিন - আপনি সর্বদা আপনার নিজের পোস্টে মন্তব্য করতে পারেন, এবং আপনার যথেষ্ট সুনামের পরে আপনি কোনও পোস্টে মন্তব্য করতে সক্ষম হবেন ।
indubitablee

18
এই উত্তরটি নির্দিষ্ট এবং সঠিক উভয়ই, অন্য দুটি প্রতিক্রিয়া থেকে আলাদা যা প্রশ্নটি কী জিজ্ঞাসা করছে তা স্বীকার করতে এমনকি ব্যর্থ।
jhk

4
এটা সঠিক উত্তর. গিথুবের একা ফাইলের জন্য লগের সাথে প্যাচ ফলাফলগুলি দেখানোর উপায় নেই যেমন গিট লগ
পি

4
অন্যান্য 2 টি উত্তর ভুল। এই উত্তরটি আমাকে সময় এবং হতাশাকে বাঁচায়।
শচিয়ান

4
"এটি প্রশ্নের উত্তর দেয় না।" অবশ্যই, এবং একজন যে আমার সময় বাঁচিয়েছে saved ধন্যবাদ jhk।
ক্রিসজেজে

34

গিটহাবের ইন্টারফেস ব্যবহার করে সরাসরি ইউআরএল উত্তরের (যা বিটিডাব্লুটি পুরোপুরি সঠিক) এর বিকল্পটি হ'ল:

  • 'উত্স' ভিউতে ক্লিক করুন
  • পছন্দসই শাখায় স্যুইচ করুন
  • আপনি ফাইলটির আসল উত্স দর্শনে না আসা পর্যন্ত আপনি যে ফাইলটি চান তা সন্ধান করুন
  • উপরের ডানদিকে কোণায় 'ইতিহাস' ক্লিক করুন

13
এই এছাড়াও আসলে কি মূল পোস্টার জন্য খুঁজছেন হয় দেয় না। তিনি প্যাচ আউটপুট চান, তিনি যা পেতেন তার সমান git log -p -- file। আপনি যা দেখিয়েছেন তা কোনও নির্দিষ্ট ফাইলের জন্য লগ, যেমন git log -- fileআলাদা আলাদা প্যাচগুলি না করে।

-3

আপনি যদি লিনাক্সে থাকেন তবে তারপরে টিআইজি ইনস্টল করুন :

sudo apt-get ইনস্টল টাইগ

এবং তারপর,

টিগ পাথ / টু / ফাইল /

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

তালাত পারভেজ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.