"date" เป็นแนวคิดที่หลวม ๆ ในคอมไพล์ การคอมมิตจะมีวันที่ของผู้เขียนซึ่งอาจเป็นเวลาที่ดีในอดีตก่อนที่จะมีคนดึง / ส่งคอมมิตไปยังที่เก็บของพวกเขาคอมมิตอาจได้รับการ rebased และอัปเดตเพื่อให้อยู่เหนือการกระทำที่ใหม่กว่าอย่างเห็นได้ชัด
คอมมิตยังมีวันที่คอมมิตซึ่งจะอัพเดตหากคอมมิตถูก rebased หรือแก้ไขด้วยวิธีใด ๆ การกระทำเหล่านี้มีแนวโน้มที่จะเป็นไปตามลำดับเวลา แต่คุณยังคงอยู่ในความเมตตาของผู้สื่อสารที่กำหนดเวลาที่ถูกต้องในคอมพิวเตอร์ของเขาและถึงอย่างนั้นการคอมมิตที่ไม่ได้ปรับเปลี่ยนสามารถนั่งอยู่บนสาขาคุณลักษณะบนพื้นที่เก็บข้อมูลระยะไกลได้โดยไม่มีกำหนดก่อน ถูกรวมเข้ากับสาขาหลักของที่เก็บกลาง
สิ่งที่น่าจะเป็นประโยชน์ที่สุดสำหรับวัตถุประสงค์ของคุณคือวันที่อ้างอิงในที่เก็บเฉพาะที่เป็นปัญหา หากคุณเปิดใช้งาน reflogs ต่อสาขา (ดูgit config core.logAllRefUpdates
) คุณสามารถใช้ref@{date}
ไวยากรณ์เพื่ออ้างถึงว่าสาขาอยู่ที่ใดในช่วงเวลาหนึ่ง
เช่น
git log -p master@{2009-07-01}..master@{now}
คุณยังสามารถใช้คำอธิบาย 'ฟัซซี่' เช่น:
git log -p "master@{1 month ago}..master@{yesterday}"
คำสั่งเหล่านี้จะแสดงการกระทำทั้งหมดที่ 'ปรากฏ' ในสาขาที่กำหนดของที่เก็บโดยไม่คำนึงว่าจะ 'เก่า' เพียงใดตามผู้เขียนและวันที่กระทำ
โปรดทราบว่า reflog ต่อสาขานั้นเฉพาะสำหรับที่เก็บดังนั้นหากคุณกำลังเรียกใช้คำสั่งบันทึกบนโคลนและคุณไม่ดึง (พูด) เดือนจากนั้นดึงการเปลี่ยนแปลงทั้งหมดของเดือนที่แล้วพร้อมกัน จากนั้นการเปลี่ยนแปลงทั้งหมดของเดือนที่แล้วจะปรากฏใน@{1 hour ago}..@{now}
ช่วง หากคุณสามารถเรียกใช้คำสั่งบันทึกบน repostory 'ส่วนกลาง' ที่ผู้คนส่งไปก็อาจทำในสิ่งที่คุณต้องการ