ประวัติหรือบันทึกคำสั่งที่ดำเนินการใน Git


99

มีวิธีติดตามคำสั่งที่ใช้ใน Git ภายใต้ Windows หรือไม่ ฉันต้องการดูคำสั่งทั้งหมดที่ฉันใช้กับที่เก็บของฉัน

ฉันต้องการย้อนกลับไปที่ประวัติคำสั่งและค้นหาคำสั่งที่ทำให้เกิดปัญหาหากเกิดปัญหาขึ้น

การดูประวัติการกระทำอาจเป็นเรื่องหนึ่ง แต่สำหรับการเก็บประวัติของการกระทำอื่น ๆ เช่นการสร้างสาขาหรือการเพิ่มรีโมตสิ่งเหล่านี้จะถูกติดตามหรือไม่?


3
นี่เป็นเพียงเล็กน้อย แต่ถ้าคุณมองเข้าไป.git/logsคุณจะเห็นประวัติของสิ่งที่กระทำในแต่ละสาขาที่ชี้ไป
นายูกิ

1
@ นายูกิเนื่องจากpushing ไม่ได้เปลี่ยนสถานะของสาขาในพื้นที่reflogจึงไม่ได้จัดเก็บpushes ดังนั้นการมองเข้าไป.git/logs/refs/remotes/*/*จึงเป็นวิธีเดียวที่จะดูpushประวัติของคุณ
Kyle Strand

คำตอบ:


-8

git rmคอมไพล์จะแสดงการเปลี่ยนแปลงในการกระทำที่มีผลต่อดัชนีเช่น ไม่เก็บบันทึกของคำสั่ง git ทั้งหมดที่คุณดำเนินการ

อย่างไรก็ตามคำสั่ง git จำนวนมากส่งผลต่อดัชนีไม่ทางใดก็ทางหนึ่งเช่นการสร้างสาขาใหม่ การเปลี่ยนแปลงเหล่านี้จะปรากฏในประวัติการกระทำซึ่งคุณสามารถดูgit logได้

อย่างไรก็ตามมีการเปลี่ยนแปลงเชิงทำลายที่คอมไพล์ไม่สามารถติดตามได้เช่นgit reset.

ดังนั้นเพื่อตอบคำถามของคุณ git จะไม่เก็บประวัติที่สมบูรณ์ของgitคำสั่งที่คุณดำเนินการไว้ในที่เก็บ อย่างไรก็ตามมักเป็นไปได้ที่จะแก้ไขคำสั่งที่คุณดำเนินการผ่านประวัติการกระทำ


3
ตามที่คำตอบด้านล่างกล่าวถึงอย่างถูกต้อง "history" แสดงรายการคำสั่งที่ดำเนินการ (ตั้งแต่การติดตั้ง)
Umesh .A Bhat

2
เปลือกร้านค้าประวัติศาสตร์ แต่คอมไพล์ไม่ได้ใช่มั้ย?
Alex

3
@UmeshABhat git historyจะเป็นประโยชน์สำหรับเช่นเห็นคำสั่งที่ได้รับการดำเนินการในโคลนโดยเฉพาะอย่างยิ่ง
Kyle Strand

5
git reflogคือสิ่งที่คุณต้องการ ดูคำตอบด้านล่าง
Chéyo

3
@ cp.engr: OP ขอประวัติของคำสั่ง git ไม่ใช่คอมมิตคอมมิต คำตอบนี้แนะนำการอนุมานคำสั่งจากคอมไพล์คอมมิตซึ่งเป็นงานที่ยากมากและไม่สามารถทำได้เสมอไป git reflogแสดงคำสั่งต่างๆ นอกจากนี้ BTW เชลล์เป็นเพียงวิธีที่ตรงกว่าเล็กน้อยในการอนุมานคำสั่ง git แต่ git repo สามารถสัมผัสได้โดยเชลล์หลาย ๆ ตัว ถาม git ว่าใช้คำสั่งอะไรดีกว่า
combinatorist

189

คุณสามารถดูประวัติด้วยgit-reflog ( ตัวอย่างที่นี่ ):

git reflog

19
@PauAI ในขณะที่git reflog จะแสดงตำแหน่งทั้งหมดที่ HEAD ของคุณติดตาม แต่จะไม่แสดงคำสั่ง git ทั้งหมด คำสั่ง Git ที่ไม่ขยับหัว (เช่นgit branch -D my_precious_branch) จะไม่ปรากฏขึ้นที่นั่น
Yonatan

@ โยนาทานไม่ได้ด้วยgit reflog --allเหรอ
combinatorist

2
@combinatorist ลองเพิ่มระยะไกล (เหมือน OP git remote add foo barให้ตัวอย่าง): จะไม่ปรากฏขึ้นgit reflog --allเนื่องจากไม่ได้แก้ไขตัวชี้ HEAD
Yonatan

git reflogไม่แสดงคำสั่งเช่นgit statusaso. มีหรือไม่มี--allพารามิเตอร์
Lorenz

64

บันทึกคำสั่งของคุณอาจมีอยู่ในประวัติเชลล์ของคุณ

history

หากคุณไม่เห็นรายการคำสั่งที่ดำเนินการบินผ่านให้ส่งออกรายการเป็นไฟล์

history > path/to/file

คุณสามารถ จำกัด การถ่ายโอนข้อมูลที่ส่งออกเพื่อแสดงเฉพาะคำสั่งที่มี "git" ในคำสั่งเหล่านั้นโดยการไพพ์ด้วย grep

history | grep "git " > path/to/file

ประวัติอาจมีเส้นที่จัดรูปแบบเช่นนี้

518  git status -s
519  git commit -am "injects sriracha to all toppings, as required"

การใช้หมายเลขนี้คุณสามารถเรียกใช้คำสั่งอีกครั้งด้วยเครื่องหมายอัศเจรีย์

$ !518
git status -s

8

หากคุณกำลังใช้ CentOS หรือรสลินุกซ์อีกแล้วเพียงแค่ทำCtrl+ ที่รวดเร็วและประเภทRgit

หากคุณกดปุ่มCtrl+ Rไปเรื่อย ๆ สิ่งนี้จะทำการค้นหาย้อนกลับในประวัติของคุณสำหรับคำสั่งที่ขึ้นต้นด้วยgit


7

พิมพ์historyTerminal ของคุณ ไม่ใช่คอมไพล์ในทางเทคนิค แต่ฉันคิดว่ามันคือสิ่งที่คุณต้องการ


6

หากคุณใช้ Windows PowerShell คุณสามารถพิมพ์ "git" แล้วกด F8 กด F8 ต่อไปเพื่อวนดูคำสั่ง git ทั้งหมดของคุณ

หรือถ้าคุณใช้ cygwin คุณสามารถทำเช่นเดียวกันกับ ^ R


ในเซสชัน windows ปกติคุณสามารถใช้ปุ่ม F7 เพื่อรับหน้าต่างเล็ก ๆ ที่ให้รายการคำสั่งทั้งหมดที่ป้อนในเซสชันนั้น
ตั้งแต่

0

ฉันพบว่าใน git bash "2.24.0.windows.2" เวอร์ชันของฉันในโฟลเดอร์ "home" ของผู้ใช้ windows จะมีไฟล์ชื่อ ".bash-history" ที่ไม่มีนามสกุลไฟล์ในโฟลเดอร์นั้น สร้างขึ้นหลังจากคุณออกจาก bash เท่านั้น

นี่คือขั้นตอนการทำงานของฉัน:

  1. ก่อนออกจากประเภท bash "history >> history.txt" [ENTER]
  2. ออกจาก bash prompt
  3. Win + R ค้างไว้เพื่อเปิดกล่องคำสั่ง Run
  4. ป้อนเชลล์: โปรไฟล์
  5. เปิด "history.txt" เพื่อยืนยันว่ามีการเพิ่มข้อความของฉัน
  6. ในบรรทัดใหม่ให้กด [F5] เพื่อป้อนการประทับเวลา
  7. บันทึกและปิด Textfile ประวัติ
  8. ลบไฟล์ ".bash-history" เพื่อให้เซสชันถัดไปสร้างประวัติใหม่

หากคุณต้องการคะแนนจริงๆฉันเดาว่าคุณสามารถสร้างไฟล์แบตช์เพื่อทำทั้งหมดนี้ได้ แต่มันดีพอสำหรับฉัน หวังว่ามันจะช่วยใครบางคน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.