ฉันสังเกตเห็นว่าในขณะที่ทำงานกับตั๋วหนึ่งหรือสองใบถ้าฉันก้าวออกไปฉันไม่แน่ใจว่าฉันทำอะไรอยู่สิ่งที่เปลี่ยนแปลงไป ฯลฯ
มีวิธีดูการเปลี่ยนแปลงที่ทำสำหรับไฟล์ที่กำหนดก่อนที่จะเพิ่มคอมไพล์แล้วคอมไพล์กระทำหรือไม่?
ฉันสังเกตเห็นว่าในขณะที่ทำงานกับตั๋วหนึ่งหรือสองใบถ้าฉันก้าวออกไปฉันไม่แน่ใจว่าฉันทำอะไรอยู่สิ่งที่เปลี่ยนแปลงไป ฯลฯ
มีวิธีดูการเปลี่ยนแปลงที่ทำสำหรับไฟล์ที่กำหนดก่อนที่จะเพิ่มคอมไพล์แล้วคอมไพล์กระทำหรือไม่?
คำตอบ:
git diffคุณกำลังมองหา ขึ้นอยู่กับสถานการณ์ที่แน่นอนของคุณมีสามวิธีที่เป็นประโยชน์ในการใช้งาน:
# show differences between index and working tree
# that is, changes you haven't staged to commit
git diff [filename]
# show differences between current commit and index
# that is, what you're about to commit
# --staged does exactly the same thing, use what you like
git diff --cached [filename]
# show differences between current commit and working tree
git diff HEAD [filename]
มันจะทำงานซ้ำในไดเรกทอรีและหากไม่มีเส้นทางที่กำหนดก็จะแสดงการเปลี่ยนแปลงทั้งหมด
git add -pจะเป็นทางเลือกในการตรวจสอบไฟล์ทั้งหมด
git diff --staged [filename]คำตอบหลักของคุณเนื่องจากเป็นสถานการณ์ที่จำเป็นมากกว่า
การใช้git-diff:
git diff yourfile
git diff filename
สำหรับฉันgit add -pเป็นวิธีที่มีประโยชน์มากที่สุด (และฉันคิดว่าโดยนักพัฒนาคอมไพล์?) เพื่อตรวจสอบการเปลี่ยนแปลงที่ไม่มีการจัดทำทั้งหมด (มันแสดงให้เห็นถึงความแตกต่างสำหรับแต่ละไฟล์) ให้เลือกชุดการเปลี่ยนแปลงที่ดี จัดฉากทั้งหมดจากนั้นใช้git commitและทำซ้ำสำหรับการส่งครั้งต่อไป จากนั้นคุณสามารถทำให้การคอมมิชชันแต่ละครั้งเป็นชุดการเปลี่ยนแปลงที่มีประโยชน์หรือมีความหมาย ฉันขอแนะนำให้สร้างสาขาใหม่สำหรับแต่ละตั๋วหรือกิจกรรมที่คล้ายกันและสลับไปมาระหว่างสาขาเหล่านั้นโดยใช้checkout(อาจใช้git stashถ้าคุณไม่ต้องการคอมมิทก่อนเปลี่ยน) แม้ว่าคุณจะทำการเปลี่ยนแปลงอย่างรวดเร็วหลายครั้งก็ตาม อย่าลืมที่จะรวมบ่อยครั้ง
แสดงการเปลี่ยนแปลงระหว่างแผนผังการทำงานกับดัชนีหรือแผนผังการเปลี่ยนแปลงระหว่างดัชนีและแผนผังการเปลี่ยนแปลงระหว่างต้นไม้สองต้นหรือการเปลี่ยนแปลงระหว่างสองไฟล์บนดิสก์
จำไว้ว่าคุณกำลังทำการเปลี่ยนแปลงไม่ใช่ไฟล์
ด้วยเหตุนี้มันหายากมากที่ฉันไม่ได้ใช้git add -p(หรือผู้ที่เทียบเท่า magit) เพื่อเพิ่มการเปลี่ยนแปลงของฉัน
git diff <path>/filename
path สามารถเป็นพา ธ ของระบบที่สมบูรณ์ของคุณจนถึงไฟล์หรือ
ถ้าคุณอยู่ในโปรเจ็กต์คุณจะวางพา ธ ของไฟล์ที่ถูกแก้ไข
สำหรับไฟล์ Modified ด้วยการใช้ path:git status
กรณีของฉันเมื่อคุณไม่ต้องการที่จะดูแลเกี่ยวกับรายการไฟล์ เพียงแสดงให้พวกเขาทั้งหมด
เมื่อคุณรันgit addรายการไฟล์แล้ว:
$ git diff --cached $(git diff --cached --name-only)
ในรุ่นล่าสุดของgitคุณสามารถใช้ยังซึ่งเป็นไวพจน์ของ--staged--cached
สามารถใช้ไฟล์เดียวกันกับที่ยังไม่ได้เพิ่มไฟล์ แต่ไม่มี--cachedตัวเลือก
$ git diff $(git diff --name-only)
นามแฝงคำสั่ง Git สำหรับตัวเลือก "แคช":
$ git config --global alias.diff-cached '!git diff --cached $(git diff --cached --name-only)'
ไปที่ repo git ที่เกี่ยวข้องจากนั้นเรียกใช้คำสั่งด้านล่าง:
ชื่อไฟล์คอมไพล์ git
มันจะเปิดไฟล์ที่มีการเปลี่ยนแปลงที่ทำเครื่องหมายไว้ให้กดปุ่ม return / enter เพื่อเลื่อนลงไฟล์
ชื่อไฟล์ PS ควรมีเส้นทางแบบเต็มของไฟล์หรืออื่น ๆ ที่คุณสามารถเรียกใช้โดยไม่ต้องใช้เส้นทางไฟล์แบบเต็มโดยไปที่ไดเรกทอรี / โฟลเดอร์ของไฟล์นั้น ๆ
คุณยังสามารถใช้โปรแกรมแก้ไขข้อความที่เป็นมิตรกับคอมไพล์ พวกเขาแสดงสีในบรรทัดที่มีการแก้ไขสีอื่นสำหรับบรรทัดที่เพิ่มสีอื่นสำหรับบรรทัดที่ถูกลบ ฯลฯ
แก้ไขข้อความที่ดีที่จะเรียนรู้ก็GitHub ของ Atom 1.0
[filename]แสดงอาร์กิวเมนต์ที่เป็นทางเลือก) เมื่อ*คุณให้เชลล์แสดงรายการไฟล์ทั้งหมดดังนั้นหากคุณอยู่ในไดเรกทอรีย่อยคุณจะได้รับสิ่งต่าง ๆ ในไดเรกทอรีย่อยนั้นเท่านั้น (ไม่ใช่ repo ทั้งหมด) และคุณ ' จะพลาดการเปลี่ยนแปลงในไฟล์ที่ซ่อนอยู่