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

ชำระเงินสาขาหรือไฟล์ไปยังแผนผังการทำงานปัจจุบันใน 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 ระยะไกลได้อย่างไร
Наэтотвопросестьответына Stack Overflow нарусском : ภาษา : ภาษารัสเซีย ใครบางคนผลักสาขาที่เรียกว่าtestกับgit push origin testไปเป็นที่เก็บที่ใช้ร่วมกัน git branch -rฉันสามารถดูสาขาที่มี ตอนนี้ฉันพยายามตรวจสอบtestสาขาระยะไกล ฉันได้พยายาม: git checkout test ซึ่งไม่ทำอะไรเลย git checkout origin/test* (no branch)จะช่วยให้ ซึ่งกำลังสับสน ฉันจะอยู่ใน "ไม่มีสาขา" ได้อย่างไร ฉันจะตรวจสอบสาขา Git ระยะไกลได้อย่างไร

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

27
ค้นหาและกู้คืนไฟล์ที่ถูกลบในที่เก็บ Git
พูดว่าฉันอยู่ในที่เก็บ Git ฉันลบไฟล์และยอมรับการเปลี่ยนแปลงนั้น ฉันทำงานต่อไปและเพิ่มความมุ่งมั่น จากนั้นฉันพบว่าฉันจำเป็นต้องกู้คืนไฟล์นั้น ฉันรู้ว่าฉันสามารถเช็คเอาต์ไฟล์โดยใช้git checkout HEAD^ foo.barแต่ฉันไม่รู้จริง ๆ ว่าไฟล์นั้นถูกลบเมื่อใด อะไรจะเป็นวิธีที่เร็วที่สุดในการค้นหาการกระทำที่ลบชื่อไฟล์ที่กำหนด? อะไรจะเป็นวิธีที่ง่ายที่สุดในการนำไฟล์นั้นกลับมาไว้ในสำเนาการทำงาน ฉันหวังว่าฉันไม่จำเป็นต้องเรียกดูบันทึกของฉันด้วยตนเองเช็คเอาต์โครงการทั้งหมดสำหรับ SHA ที่ระบุจากนั้นคัดลอกไฟล์นั้นลงในการตรวจสอบโครงการต้นฉบับของฉัน
2802 git  file-io  git-checkout 

13
ฉันจะเปลี่ยนการเปลี่ยนแปลงในพื้นที่ทั้งหมดในโครงการที่จัดการ Git กลับไปเป็นสถานะก่อนหน้าได้อย่างไร
git initผมมีโครงการที่ฉันวิ่ง หลังจากทำคอมมิทหลายครั้งฉันก็git statusบอกทุกอย่างให้ทันสมัยและไม่มีการเปลี่ยนแปลงในท้องถิ่น จากนั้นฉันทำการเปลี่ยนแปลงติดต่อกันหลายครั้งและตระหนักว่าฉันต้องการทิ้งทุกอย่างและกลับสู่สภาพเดิม คำสั่งนี้จะทำเพื่อฉันได้ไหม git reset --hard HEAD
1913 git  revert  git-checkout 

9
วิธีรับไฟล์เดียวจากสาขาอื่น
ฉันใช้คอมไพล์และทำงานในสาขาหลัก app.jsสาขานี้มีไฟล์ที่เรียกว่า ฉันมีexperimentสาขาที่ฉันทำการเปลี่ยนแปลงมากมายและมีภาระผูกพันมากมาย ตอนนี้ฉันต้องการนำการเปลี่ยนแปลงทั้งหมดที่ทำไปapp.jsจากสาขาexperimentไปmasterเท่านั้น ฉันจะทำอย่างไร ฉันไม่ต้องการรวมอีกครั้ง ฉันแค่ต้องการนำการเปลี่ยนแปลงทั้งหมดapp.jsจากexperimentสาขาไปยังmasterสาขา
1262 git  git-checkout 

11
ย้อนกลับไปที่ Git เก่าที่กระทำใน repo สาธารณะ
ฉันจะย้อนกลับไปสู่การคอมมิทเฉพาะทางได้อย่างไร? คำตอบที่ดีที่สุดที่ใครบางคนสามารถให้ฉันได้คือการใช้git revertX ครั้งจนกว่าฉันจะถึงความมุ่งมั่นที่ต้องการ สมมุติว่าฉันต้องการกลับไปใช้ความมุ่งมั่นที่อายุ 20 คอมมิทฉันจะต้องรันมัน 20 ครั้ง มีวิธีที่ง่ายกว่านี้หรือไม่? ฉันไม่สามารถใช้รีเซ็ตได้เพราะพื้นที่เก็บข้อมูลนี้เป็นแบบสาธารณะ

8
มีวิธีการชำระเงินสาขาก่อนหน้านี้หรือไม่?
ฉันต้องการเรียงลำดับของcd -git ถ้าผมอยู่ในสาขาmasterและฉันเช็คเอาfooฉันจะรักจะสามารถพิมพ์สิ่งที่ต้องการgit checkout -ที่จะกลับไปและสามารถที่จะพิมพ์อีกครั้งเพื่อกลับไปmasterfoo มีอะไรแบบนี้อยู่อีกไหม? มันจะยากที่จะใช้?
705 git  git-checkout 

15
ผสานอัปเดตและดึงกิ่ง Git โดยไม่ต้องใช้การชำระเงิน
ฉันทำงานในโครงการที่มี 2 สาขาคือ A และ B โดยปกติฉันทำงานในสาขา A และรวมสิ่งต่าง ๆ จากสาขา B สำหรับการรวมฉันมักจะทำ: git merge origin/branchB อย่างไรก็ตามฉันต้องการเก็บสำเนา B สาขาในท้องที่ด้วยเนื่องจากฉันอาจตรวจสอบสาขาเป็นครั้งคราวโดยไม่รวมกับสาขา A ของฉันก่อนสำหรับสิ่งนี้ฉันจะทำ: git checkout branchB git pull git checkout branchA มีวิธีการข้างต้นในคำสั่งเดียวและโดยไม่ต้องสลับสาขาไปมา? ฉันควรจะใช้git update-refเพื่อสิ่งนั้นหรือไม่? อย่างไร?

4
แท็ก git คืออะไร, วิธีสร้างแท็ก & วิธีชำระเงินแท็ก git ระยะไกล
เมื่อฉันชำระเงินแท็ก git ระยะไกลใช้คำสั่งเช่นนี้: git checkout -b local_branch_name origin/remote_tag_name ฉันมีข้อผิดพลาดเช่นนี้: error: pathspec `origin/remote_tag_name` did not match any file(s) known to git. ฉันสามารถค้นหา remote_tag_name เมื่อฉันใช้คำสั่ง git tag

5
เลิกทำไฟล์ที่ถูกลบในคอมไพล์
โดยปกติแล้วหากต้องการยกเลิกการเปลี่ยนแปลงไฟล์ที่คุณต้องทำ: git checkout -- <file> จะทำอย่างไรถ้าการเปลี่ยนแปลงที่ฉันต้องการจะยกเลิกคือการลบไฟล์? บรรทัดข้างต้นจะทำให้เกิดข้อผิดพลาด: error: pathspec '<file>' did not match any file(s) known to git. คำสั่งใดจะคืนค่าไฟล์เดี่ยวนั้นโดยไม่ยกเลิกการเปลี่ยนแปลงอื่น ๆ จุดโบนัส:นอกจากนี้จะเกิดอะไรขึ้นถ้าการเปลี่ยนแปลงที่ฉันต้องการจะยกเลิกคือการเพิ่มไฟล์? ฉันต้องการทราบวิธีการเปลี่ยนสถานะที่ไม่เปลี่ยนแปลงเช่นกัน
504 git  git-checkout 

11
Git checkout: การอัพเดทพา ธ ไม่สามารถใช้งานได้กับการสลับแบรนช์
ปัญหาของฉันเป็นที่เกี่ยวข้องกับข้อผิดพลาดร้ายแรง Git เมื่อมีการเปลี่ยนสาขา ฉันพยายามดึงสาขาระยะไกลด้วยคำสั่ง git checkout -b local-name origin/remote-name แต่ฉันได้รับข้อความแสดงข้อผิดพลาดนี้: ร้ายแรง: เช็คเอาต์ git: การอัพเดทพา ธ ไม่สามารถใช้งานได้กับการสลับแบรนช์ คุณตั้งใจจะเช็คเอาต์ 'Origin / remote-name' ซึ่งไม่สามารถแก้ไขได้ตามที่มอบหมาย? ถ้าฉันสร้างสาขาด้วยตนเองแล้วดึงสาขาระยะไกลมันใช้งานได้เช่นเดียวกับการสร้างโคลนใหม่และตรวจสอบสาขา เหตุใดมันจึงไม่ทำงานบนที่เก็บที่ฉันทำงานด้วย

23
วิธีรับชื่อแท็กล่าสุดในสาขาปัจจุบันใน Git
วิธีที่ง่ายที่สุดในการรับแท็กล่าสุดใน Git คืออะไร git tag a HEAD git tag b HEAD^^ git tag c HEAD^ git tag เอาท์พุท: a b c ฉันควรเขียนสคริปต์เพื่อให้ได้รับวันที่และเวลาของแท็กและเปรียบเทียบได้อย่างไร


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

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