คำถามติดแท็ก git-rm

"git rm" คือคำสั่ง Git ที่ใช้เพื่อลบไฟล์ออกจากโครงสร้างการทำงานและจากดัชนี ใช้แท็กนี้สำหรับโพสต์ทั้งหมดที่เกี่ยวข้องกับการใช้คำสั่งนี้

26
วิธีทำให้ Git“ ลืม” เกี่ยวกับไฟล์ที่ถูกติดตาม แต่ขณะนี้อยู่ใน. gitignore?
มีไฟล์ที่ถูกติดตามโดยgitแต่ตอนนี้ไฟล์อยู่ใน.gitignoreรายการ อย่างไรก็ตามไฟล์นั้นจะปรากฏขึ้นgit statusหลังจากที่มีการแก้ไข คุณgitจะบังคับให้ลืมเรื่องนี้ได้อย่างไร?
5399 git  gitignore  git-rm 

10
ลบไฟล์ออกจากที่เก็บ Git โดยไม่ต้องลบออกจากระบบไฟล์ในเครื่อง
ความมุ่งมั่นครั้งแรกของฉันมีไฟล์บันทึกบางส่วน ฉันเพิ่มลง*logในของฉัน.gitignoreแล้วและตอนนี้ฉันต้องการลบไฟล์บันทึกจากที่เก็บของฉัน git rm mylogfile.log จะลบไฟล์ออกจากที่เก็บ แต่จะลบออกจากระบบไฟล์โลคัลด้วย ฉันจะลบไฟล์นี้จาก repo โดยไม่ต้องลบไฟล์ในเครื่องได้อย่างไร

20
ฉันจะลบไฟล์ออกจากที่เก็บ Git ได้อย่างไร
ฉันได้เพิ่มไฟล์ชื่อ"file1.txt"ในที่เก็บ Git หลังจากนั้นฉันยืนยันแล้วเพิ่มไดเรกทอรีที่เรียกว่าdir1และdir2และส่งไปยังที่เก็บ Git ตอนนี้พื้นที่เก็บข้อมูลในปัจจุบันมี"file1.txt", และdir1 dir2ฉันจะลบ"file1.txt"โดยไม่ส่งผลกระทบต่อผู้อื่นเช่นdir1และได้dir2อย่างไร
1922 git  git-rm 

29
การลบหลายไฟล์ออกจาก repo Git ที่ถูกลบออกจากดิสก์แล้ว
ฉันมี repo Git ที่ฉันได้ลบสี่ไฟล์จากการใช้rm( ไม่ git rm ) และสถานะ Git ของฉันมีลักษณะดังนี้: # deleted: file1.txt # deleted: file2.txt # deleted: file3.txt # deleted: file4.txt ฉันจะลบไฟล์เหล่านี้ออกจาก Git ได้อย่างไรโดยไม่ต้องดำเนินการด้วยตนเองและเพิ่มแต่ละไฟล์ดังนี้: git rm file1 file2 file3 file4 เป็นการดีที่ฉันกำลังมองหาบางสิ่งบางอย่างที่ทำงานในลักษณะเดียวกันกับที่git add .ทำถ้าเป็นไปได้
1311 git  git-commit  git-add  git-rm 

12
เหตุใดจึงมีสองวิธีในการเลิกเก็บไฟล์ใน Git
บางครั้งคอมไพล์แสดงให้เห็นgit rm --cachedการ unstage git reset HEAD fileไฟล์บางครั้ง เมื่อใดที่ฉันควรใช้ แก้ไข: D:\code\gt2>git init Initialized empty Git repository in D:/code/gt2/.git/ D:\code\gt2>touch a D:\code\gt2>git status # On branch master # # Initial commit # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # a nothing …
1168 git  git-reset  git-rm 

8
Staging ไฟล์ที่ถูกลบ
fooว่าฉันมีไฟล์ในพื้นที่เก็บข้อมูลคอมไพล์ของฉันเรียกว่า สมมติว่ามันถูกลบด้วยrm(ไม่git rm) จากนั้นสถานะ git จะแสดง: Changes not staged for commit: deleted: foo ฉันจะจัดการการลบไฟล์แต่ละไฟล์ได้อย่างไร ถ้าฉันลอง: git add foo มันบอกว่า: 'foo' did not match any files.
499 git  git-add  git-rm  git-stage 

12
คุณจะแก้ไขการผสานที่ไม่ดีได้อย่างไรและเล่นซ้ำสิ่งที่ดีของคุณในการรวมถาวร?
ฉันตั้งใจส่งไฟล์ที่ไม่ต้องการ ( filename.origขณะแก้ไขการผสาน) ไปยังที่เก็บข้อมูลของฉันหลายครั้งก่อนหน้านี้โดยที่ฉันไม่ได้สังเกตจนกระทั่งตอนนี้ ฉันต้องการลบไฟล์ออกจากประวัติของที่เก็บอย่างสมบูรณ์ เป็นไปได้ไหมที่จะเขียนประวัติการเปลี่ยนแปลงใหม่ที่filename.origไม่เคยถูกเพิ่มไปยังที่เก็บในตอนแรก?

5
ลบโฟลเดอร์ออกจากการติดตามคอมไพล์
ฉันต้องแยกโฟลเดอร์ (อัปโหลดชื่อ) ออกจากการติดตาม ฉันพยายามวิ่ง git rm -r --cached wordpress/wp-content/uploads และหลังจากนั้นฉันเพิ่มเส้นทางไปยัง. gitignore /wordpress/wp-content/uploads แต่เมื่อฉันวิ่งgit statusพวกเขาปรากฏขึ้นเป็นลบ หากฉันพยายามส่งการเปลี่ยนแปลงไฟล์จะถูกลบไม่เพียง แต่ถูกลบออกจากการติดตาม ผมทำอะไรผิดหรือเปล่า? ฉันได้ลองแล้ว git update-index --assume-unchanged <file> แต่ดูเหมือนว่าจะยกเลิกการติดตามไฟล์เท่านั้น แต่ฉันต้องลบทั้งโฟลเดอร์ (รวมถึงโฟลเดอร์ย่อย) ออกจากการติดตาม
404 git  git-rm 

12
จะเปลี่ยน“ git rm -r.” กลับคืนได้อย่างไร?
ฉัน accidentely git rm -r .กล่าวว่า ฉันจะกู้คืนจากสิ่งนี้ได้อย่างไร ฉันไม่ได้กระทำ ฉันคิดว่าไฟล์ทั้งหมดถูกทำเครื่องหมายว่าเป็นการลบและถูกลบออกจากการชำระเงินในท้องที่ด้วย แก้ไข:ฉันสามารถ (ถ้าฉันรู้ว่าคำสั่ง) กลับไปใช้ความมุ่งมั่นล่าสุด git rm -r .แต่มันอาจจะดีขึ้นมากถ้าฉันเพียงแค่อาจจะยกเลิกการ git rm -r .เพราะฉันไม่ได้จริงๆว่าสิ่งที่ฉันได้หลังจากที่ผ่านมากระทำและก่อนที่จะ
378 git  git-rm 


9
Git: รายการเฉพาะไฟล์“ untracked” (เช่นเดียวกับคำสั่งที่กำหนดเอง)
มีวิธีใช้คำสั่งที่ต้องการgit ls-filesแสดงเฉพาะไฟล์ที่ไม่ได้ติดตามหรือไม่ เหตุผลที่ฉันถามเพราะฉันใช้คำสั่งต่อไปนี้เพื่อประมวลผลไฟล์ที่ถูกลบทั้งหมด: git ls-files -d | xargs git rm ฉันต้องการสิ่งที่คล้ายกันสำหรับไฟล์ที่ไม่ได้ติดตาม: git some-command --some-options | xargs git add ฉันสามารถค้นหา-oตัวเลือกได้git ls-filesแต่นี่ไม่ใช่สิ่งที่ฉันต้องการเพราะมันยังแสดงไฟล์ที่ถูกละเว้นด้วย ฉันยังสามารถสร้างคำสั่งที่ยาวและน่าเกลียดดังต่อไปนี้: git status --porcelain | grep '^??' | cut -c4- | xargs git add ดูเหมือนว่าจะต้องมีคำสั่งที่ดีกว่าที่ฉันสามารถใช้ได้ที่นี่ และถ้าไม่มีฉันจะสร้างคำสั่ง git ที่กำหนดเองได้อย่างไร

10
Git เพิ่มไฟล์ทั้งหมดที่ถูกแก้ไขลบและไม่ได้ติดตาม?
มีวิธีเพิ่มไฟล์ทั้งหมดไม่ว่าคุณจะทำอะไรไม่ว่าจะถูกลบไม่ได้ติดตามหรือไม่ ชอบการกระทำ ฉันไม่ต้องการให้ไฟล์ทั้งหมดของฉันgit addหรือgit rmทุกครั้งที่ฉันกระทำโดยเฉพาะเมื่อฉันทำงานกับผลิตภัณฑ์ที่มีขนาดใหญ่
256 git  git-add  git-rm 

16
วิธีลบไฟล์ที่ลบหลายไฟล์ในที่เก็บ Git
ฉันได้ลบบางไฟล์และสถานะ git แสดงดังต่อไปนี้ ฉันมุ่งมั่นและผลักดัน GitHub ยังคงแสดงไฟล์ที่ถูกลบในที่เก็บ ฉันจะลบไฟล์ในที่เก็บ GitHub ได้อย่างไร # On branch master # Changes not staged for commit: # (use "git add/rm <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # deleted: modules/welcome/language/english/kaimonokago_lang.php # deleted: modules/welcome/language/french/kaimonokago_lang.php # …
237 git  git-rm 

7
Git: วิธีลบไฟล์ออกจากดัชนีโดยไม่ต้องลบไฟล์ออกจากที่เก็บใด ๆ
เมื่อคุณใช้ git rm --cached myfile มันไม่ได้ลบออกจากระบบไฟล์ในเครื่องซึ่งเป็นเป้าหมาย แต่ถ้าคุณได้กำหนดเวอร์ชันและคอมมิตไฟล์แล้วให้พุชไปยังที่เก็บส่วนกลางและดึงไปไว้ในที่เก็บอื่นก่อนที่จะใช้คำสั่งมันจะลบไฟล์ออกจากระบบนั้น มีวิธีการเพียงแค่ลบไฟล์จากเวอร์ชันโดยไม่ต้องลบมันออกจากระบบไฟล์ใด ๆ ? แก้ไข: ชี้แจงฉันหวังว่า

3
“ git rm --cached x” เทียบกับ“ git reset head - x”?
GitRef.org - พื้นฐาน : git rmจะลบรายการออกจากพื้นที่จัดเตรียม สิ่งนี้แตกต่างจากgit reset HEADไฟล์ "unstages" เล็กน้อย โดย "unstage" ฉันหมายถึงมันเปลี่ยนพื้นที่การแสดงละครกลับเป็นสิ่งที่อยู่ที่นั่นก่อนที่เราจะเริ่มแก้ไขสิ่งต่างๆ git rmในทางกลับกันเพียงแค่เตะไฟล์ออกจากสเตจทั้งหมดเพื่อที่จะไม่รวมอยู่ในสแน็ปช็อตการส่งครั้งต่อไปดังนั้นจึงเป็นการลบอย่างมีประสิทธิภาพ โดยค่าเริ่มต้น a git rm fileจะลบไฟล์ออกจากพื้นที่จัดเตรียมทั้งหมดและปิดดิสก์ของคุณ> (ไดเรกทอรีทำงาน) git rm --cachedที่จะออกจากแฟ้มในไดเรกทอรีการทำงานที่คุณสามารถใช้ แต่อะไรคือความแตกต่างระหว่างgit rm --cached asdและgit reset head -- asd?

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