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

ตั้งค่าส่วนหัว Git repo ปัจจุบันเป็นคอมมิตที่ระบุและเลือกที่จะรีเซ็ตดัชนีและโครงสร้างการทำงานเพื่อจับคู่

30
ฉันจะเปลี่ยนที่เก็บ Git กลับเป็นการคอมมิชชันก่อนหน้าได้อย่างไร
คำตอบของคำถามนี้เป็นความพยายามของชุมชน แก้ไขคำตอบที่มีอยู่เพื่อปรับปรุงโพสต์นี้ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันจะเปลี่ยนจากสถานะปัจจุบันเป็นสแน็ปช็อตที่เกิดขึ้นจากการกระทำบางอย่างได้อย่างไร ถ้าฉันทำgit logแล้วฉันจะได้ผลลัพธ์ต่อไปนี้: $ git log commit a867b4af366350be2e7c21b8de9cc6504678a61b` Author: Me <me@me.com> Date: Thu Nov 4 18:59:41 2010 -0400 blah blah blah... commit 25eee4caef46ae64aa08e8ab3f988bc917ee1ce4 Author: Me <me@me.com> Date: Thu Nov 4 05:13:39 2010 -0400 more blah blah blah... commit 0766c053c0ea2035e90f504928f8df3c9363b8bd Author: Me <me@me.com> Date: Thu Nov 4 00:55:06 …

30
ลบการกระทำจากสาขาใน Git
ฉันต้องการทราบวิธีลบการส่ง โดยdeleteฉันหมายความว่ามันเหมือนกับว่าฉันไม่ได้ทำอย่างนั้นและเมื่อฉันผลักดันในอนาคตการเปลี่ยนแปลงของฉันจะไม่ผลักไปที่สาขาระยะไกล git reset --hard HEADผมอ่านความช่วยเหลือคอมไพล์และผมคิดว่าคำสั่งฉันควรใช้คือ ถูกต้องหรือไม่
3233 git  git-rebase  git-reset 

8
ย้ายงานที่ไม่มีอยู่แล้วไปยังสาขาใหม่ใน Git
ฉันเริ่มทำงานกับคุณสมบัติใหม่และหลังจากเขียนโค้ดสักหน่อยฉันคิดว่าคุณสมบัตินี้ควรอยู่ในสาขาของตัวเอง ฉันจะย้ายการเปลี่ยนแปลงที่ไม่มีข้อผูกมัดที่มีอยู่ไปยังสาขาใหม่และรีเซ็ตการตั้งค่าปัจจุบันของฉันได้อย่างไร ฉันต้องการรีเซ็ตสาขาปัจจุบันของฉันในขณะที่รักษางานที่มีอยู่ในคุณสมบัติใหม่

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 


13
จะยกเลิกการเปลี่ยนแปลงที่ไม่ได้รับการยอมรับรวมถึงไฟล์และโฟลเดอร์ได้อย่างไร
มีคำสั่ง git เพื่อยกเลิกการเปลี่ยนแปลงที่ไม่ได้รับการผูกมัดทั้งหมดในแผนผังการทำงานและดัชนีรวมถึงลบไฟล์และโฟลเดอร์ที่สร้างขึ้นใหม่หรือไม่?

10
ฉันสามารถลบคอมมิทคอมมิชชัน แต่เก็บการเปลี่ยนแปลงนั้นได้
ในสาขาการพัฒนาของฉันฉันทำการเปลี่ยนแปลงรหัสฐานของฉัน ก่อนที่ฉันจะสามารถใช้งานฟีเจอร์ต่าง ๆ ที่ฉันใช้งานได้ฉันต้องเปลี่ยนสาขาปัจจุบันของฉันเป็นโทเพื่อสาธิตคุณลักษณะบางอย่าง แต่เพียงแค่ใช้ "อาจารย์ชำระเงิน git" รักษาการเปลี่ยนแปลงที่ฉันทำไว้ในสาขาการพัฒนาของฉัน ดังนั้นสิ่งที่ฉันได้กระทำคือการเปลี่ยนแปลงในสาขาการพัฒนาของฉันด้วยข้อความการกระทำ "การกระทำชั่วคราว" และจากนั้นชำระเงินหลักสำหรับการสาธิต ตอนนี้ฉันได้ทำการสาธิตและกลับไปทำงานในสาขาการพัฒนาของฉันฉันต้องการลบ "การกระทำชั่วคราว" ที่ฉันทำในขณะที่ยังคงรักษาการเปลี่ยนแปลงที่ฉันทำไว้ เป็นไปได้ไหม
1055 git  undo  git-reset 

7
git เลิกทำการเปลี่ยนแปลงที่ไม่ได้รับการยอมรับหรือไม่ได้บันทึก
ฉันพยายามยกเลิกการเปลี่ยนแปลงทั้งหมดตั้งแต่ที่ทำครั้งสุดท้าย ฉันพยายามgit reset --hardและgit reset --hard HEADหลังจากดูโพสต์นี้ ฉันตอบกลับด้วย head ตอนนี้อยู่ที่ 18c3773 ... แต่เมื่อฉันดูที่แหล่งภายในเครื่องของฉันไฟล์ทั้งหมดจะยังคงอยู่ที่นั่น ฉันพลาดอะไรไป

4
เลิกทำการคอมมิทเฉพาะใน Git ที่ถูกผลักไปที่ repos ระยะไกล
เป็นวิธีที่ง่ายที่สุดในการยกเลิกการกระทำที่เฉพาะเจาะจงคือ: ไม่อยู่ในหัวหรือหัวหน้า ได้ถูกผลักไปยังระยะไกล เพราะถ้ามันไม่ได้กระทำล่าสุด git reset HEAD ไม่ทำงาน และเนื่องจากมันถูกผลักไปที่รีโมต git rebase -i และ git rebase --onto จะทำให้เกิดปัญหาในรีโมท ยิ่งกว่านั้นฉันไม่ต้องการแก้ไขประวัติจริงๆ หากมีรหัสไม่ดีแสดงว่ามีอยู่ในประวัติและสามารถมองเห็นได้ ฉันแค่ต้องการมันในสำเนาที่ใช้งานได้และฉันก็ไม่รังเกียจที่จะรวมการย้อนกลับ กล่าวอีกนัยหนึ่งสิ่งที่เทียบเท่าGitของคำสั่ง svn ต่อไปนี้: svn merge -r 303:295 http://svn.example.com/repos/calc/trunk ซึ่งจะลบการเปลี่ยนแปลงทั้งหมดจาก 295 ถึง 302 โดยย้อนกลับการรวมการเปลี่ยนแปลงทั้งหมดในการแก้ไขเหล่านั้นเป็นการกระทำใหม่ svn merge -c -302 ^/trunk ซึ่งยกเลิกการกระทำ 302 แน่นอนโดยการเพิ่มการกระทำอื่นที่ย้อนกลับผสานการเปลี่ยนแปลงจากการกระทำนั้น ๆ ฉันคิดว่ามันควรจะใช้งานได้ง่ายใน Git และกรณีการใช้งานที่ค่อนข้างธรรมดา ปรมาณูมีจุดมุ่งหมายอะไรอีก? เรามีการจัดเตรียมstashingและทั้งหมดเพื่อให้แน่ใจว่าการกระทำนั้นสมบูรณ์แบบในระดับอะตอมคุณไม่ควรเลิกทำการคอมมิทเหล่านั้นอย่างน้อยหนึ่งอย่างได้อย่างง่ายดายหรือไม่?

6
วิธียกเลิกคอมมิทท้องถิ่น
ปัญหาของฉันคือฉันได้เปลี่ยนไฟล์เช่น: README เพิ่มบรรทัดใหม่ ' นี่สำหรับบรรทัดทดสอบของฉัน ' และบันทึกไฟล์จากนั้นฉันออกคำสั่งต่อไปนี้ git status # On branch master # Changed but not updated: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: README # no changes added to …

6
อะไรคือความแตกต่างระหว่าง“ รีเซ็ต git” และ“ เช็คเอาต์ git”?
ฉันคิดถึงgit resetและgit checkoutเหมือนเดิมเสมอในแง่ที่ว่าทั้งสองนำโครงการกลับสู่การกระทำที่เฉพาะเจาะจง อย่างไรก็ตามฉันรู้สึกว่าพวกเขาไม่สามารถเหมือนกันอย่างแน่นอนซึ่งจะซ้ำซ้อน ความแตกต่างที่แท้จริงระหว่างสองคืออะไร ฉันสับสนเล็กน้อยเนื่องจาก svn มีเพียงsvn coการย้อนกลับการกระทำ ADDED VonC และ Charles อธิบายความแตกต่างระหว่างgit resetและgit checkoutดีจริง ๆ ความเข้าใจปัจจุบันของฉันคือการgit resetย้อนกลับการเปลี่ยนแปลงทั้งหมดกลับไปสู่การยอมรับที่เฉพาะเจาะจงในขณะที่git checkoutเตรียมมากขึ้นหรือน้อยลงสำหรับสาขา ฉันพบไดอะแกรมสองแผนภาพต่อไปนี้ค่อนข้างมีประโยชน์ในการทำความเข้าใจนี้: เพิ่ม 3 จากhttp://think-like-a-git.net/sections/rebase-from-the-ground-up/using-git-cherry-pick-to-simulate-git-rebase.html การชำระเงินและการรีเซ็ตสามารถเลียนแบบได้ rebase git checkout bar git reset --hard newbar git branch -d newbar

5
Git: ไม่สามารถเลิกทำการเปลี่ยนแปลงในเครื่องได้ (ข้อผิดพลาด: เส้นทาง…ถูกเลิกรวมแล้ว)
ฉันได้ติดตามสถานะของต้นไม้ที่ใช้งานได้ $ git status foo/bar.txt # On branch master # Unmerged paths: # (use "git reset HEAD <file>..." to unstage) # (use "git add/rm <file>..." as appropriate to mark resolution) # # deleted by us: foo/bar.txt # no changes added to commit (use "git add" and/or "git commit -a") มีไฟล์foo/bar.txtอยู่และฉันต้องการให้มันเป็น …

3
รีเซ็ตการเปลี่ยนแปลงทั้งหมดหลังจากคอมมิทครั้งสุดท้ายในคอมไพล์
ฉันจะยกเลิกทุกการเปลี่ยนแปลงที่เกิดขึ้นกับไดเรกทอรีของฉันหลังจากที่ล่าสุดกระทำรวมถึงการลบไฟล์เพิ่มการรีเซ็ตการแก้ไขไฟล์และบวกกลับไฟล์ที่ถูกลบ?

20
การเปลี่ยนแปลงที่ไม่ดำเนินการค้างอยู่หลังจากรีเซ็ต - คอมไพล์แล้ว
หลังจากgit reset --hard, git statusให้ฉันไฟล์ภายในChanges not staged for commit:ส่วน ฉันเคยลองgit reset .แล้วgit checkout -- .และgit checkout-index -f -aก็ไม่มีประโยชน์ ดังนั้นฉันจะกำจัดการเปลี่ยนแปลงที่ไม่มีสถานะเหล่านั้นได้อย่างไร ดูเหมือนว่าจะตีไฟล์โครงการ Visual Studio เท่านั้น แปลก. ดูวางนี้: http://pastebin.com/eFZwPn9Z มีอะไรพิเศษกับไฟล์เหล่านั้นคือใน. gitattributes ฉันมี: *.sln eol=crlf *.vcproj eol=crlf *.vcxproj* eol=crlf นอกจากนี้ยังมีการตั้งค่าที่ผิดพลาดในระดับโลกของฉันautocrlf .gitconfigนั่นอาจจะเกี่ยวข้องอย่างใด?
275 git  git-reset 

6
ความแตกต่างระหว่าง Git Revert, Checkout และ Reset
ฉันพยายามที่จะเรียนรู้วิธีการที่จะเรียกคืนหรือไฟล์ย้อนกลับและโครงการไปยังรัฐก่อนและไม่เข้าใจความแตกต่างระหว่างgit revert, และcheckout resetเหตุใดจึงมี 3 คำสั่งต่างกันสำหรับวัตถุประสงค์เดียวกันและเมื่อมีคนควรเลือกคำสั่งอื่น

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