Git: 1. แสดงรายการไฟล์ทั้งหมดในสาขา 2. เปรียบเทียบไฟล์จากสาขาอื่น


90
  1. มองหาคำสั่งเช่นls -Rหรือdir/sที่สามารถแสดงรายการไฟล์ทั้งหมดในคอมมิต / สาขา
  2. มีคำสั่งใดที่สามารถเปรียบเทียบไฟล์สองไฟล์จากสาขาต่างๆได้หรือไม่?

คำตอบ:


138
  1. git ls-tree -r --name-only <commit>(แทนที่จะ<commit>มีได้<branch>)
    คุณอาจต้องการใช้-tตัวเลือกที่แสดงรายการไดเร็กทอรีย่อยก่อนที่จะลงมา
  2. git diff <branchA>:<fileA> <branchB>:<fileB>,
    หรือถ้าคุณต้องการที่จะเปรียบเทียบไฟล์เดียวกันgit diff <branchA> <branchB> -- <file>

4
หากคุณต้องการแสดงรายการไดเร็กทอรีเฉพาะคุณสามารถเพิ่มโคลอนตามด้วยพา ธ ไปยังสาขาเช่น git ls-tree -r --name-only master: directory / path / name
มิลเลอร์ gorilla

28

ในการเปรียบเทียบไฟล์เดียวกันจากสาขาต่างๆ:

git diff branch_1..branch_2 file.txt

ในการแสดงรายการไฟล์ทั้งหมดในวัตถุโครงสร้าง:

git ls-tree -r branch

ฉันได้รับ "git:" ls "ไม่ใช่คำสั่ง git โปรดดู" git --help " และฉันใช้ git v 2.19.0
Andrew S

2
ไม่ใช่แค่lsคุณลืม-treeตอนจบ :)
Dan Loewenherz

1
อ่าฉันคิดว่าเป็น ls -tree ฉันคิดว่า - ทรีเป็นสวิตช์ ขอบคุณ.
Andrew S

25

เพื่อแสดงรายการไฟล์ทั้งหมดที่เพิ่มในสาขาใหม่

git diff --name-only branch1 master

4
รายการนี้แสดงเฉพาะชื่อของไฟล์ทั้งหมดที่มีการเปลี่ยนแปลงไม่ใช่เฉพาะไฟล์ใหม่
Meredith

3

แสดงรายการไฟล์ในสาขาด้วย git ls-files

  1. ลองgit ls-filesอธิบายไว้ในdocu git-scm :
# Switch to <branch> of interest
$ git checkout <branch>
# List all files in <branch>
$ git ls-files

สำหรับตัวเลือกเพิ่มเติมตรวจสอบเอกสาร


2

ณ Git v2.1.0 [15/08/14]

สำหรับการแสดงรายการคุณสามารถใช้git ls-filesเพื่อแสดงรายการไฟล์ทั้งหมดแบบวนซ้ำในดัชนี / ไดเร็กทอรีการทำงานปัจจุบัน คุณอาจอ้างถึงGit-SCM Docs / git-ls-filesหรือพิมพ์man git-ls-filesถ้าคุณติดตั้ง Git และมี man page พร้อมใช้งาน

มันมีตัวเลือกที่ดีที่จะแสดงไฟล์ในรูปแบบที่แตกต่างกันเช่นcached, staged, deleted, modified, ignoredหรือothersสำหรับที่ไม่ได้ติดตาม นอกจากนี้ยังรองรับรูปแบบการจับคู่ มียังมี--debugหาเรื่องคุณสามารถแสดงรายการcreation time, modification time, inode id, owner & group id, sizeและflagsไฟล์


สำหรับความแตกต่างของสองสาขาให้ใช้git diff <branch> <other branch>ตามที่ระบุไว้ในคำตอบอื่น ๆ

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