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

ชำระเงินสาขาหรือไฟล์ไปยังแผนผังการทำงานปัจจุบันใน Git repo

4
git stash blunder: git stash pop และจบลงด้วยการรวมความขัดแย้ง
ฉันทำgit stash popและจบลงด้วยการรวมความขัดแย้ง ฉันลบไฟล์ออกจากระบบไฟล์และทำgit checkoutตามที่แสดงด้านล่าง แต่คิดว่าไฟล์ยังคงถูกแยกออก จากนั้นฉันก็ลองแทนที่ไฟล์และทำgit checkoutผลลัพธ์อีกครั้งและเหมือนเดิม เหตุการณ์ฉันพยายามบังคับให้มีการ-fตั้งค่าสถานะ ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม! chirag-patels-macbook-pro:haloror patelc75$ git status app/views/layouts/_choose_patient.html.erb: needs merge app/views/layouts/_links.html.erb: needs merge # On branch prod-temp # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: db/schema.rb # # Changed but not updated: # …

7
อะไรคือความแตกต่างระหว่าง“ สาขา git” และ“ git checkout -b”?
ฉันเคยgit checkout -bสร้างสาขาใหม่ ฉันคิดว่าgit branchทำสิ่งเดียวกัน สองคำสั่งเหล่านี้แตกต่างกันอย่างไรถ้าพวกเขาแตกต่างกันอย่างไร

13
ข้อผิดพลาดในการกด Git: ไม่สามารถยกเลิกการเชื่อมโยงเก่าได้ (ปฏิเสธสิทธิ์)
ในเซิร์ฟเวอร์ระยะไกลฉันมีการตั้งค่า hook post-receive เพื่อทำการเช็คเอาต์ git ของที่เก็บของฉัน: #!/bin/sh GIT_WORK_TREE=/var/www/<website> git checkout -f แต่เมื่อฉันกดจากเครื่องในพื้นที่ของฉันไปยังที่เก็บ git ในเซิร์ฟเวอร์ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: remote: error: unable to unlink old '<file>' (Permission denied) ปรากฏขึ้นหลายครั้งข้อความแสดงข้อผิดพลาดเดียวสำหรับเกือบทุกไฟล์ อย่างไรก็ตามฉันมีไฟล์ README.txt ที่ฉันสามารถเปลี่ยนได้โดยใช้ git นี่คือการอนุญาต: -rw-r--r-- 1 <serverusername> <serverusername> 2939 Aug 2 10:58 README.txt แต่ไฟล์อื่น ๆ ที่มีเจ้าของเดียวกันและสิทธิ์เหมือนกันให้ข้อผิดพลาดนั้นกับฉัน ในที่เก็บภายในเครื่องอื่นสำหรับเว็บไซต์อื่นฉันมีไฟล์ที่มีชื่อผู้ใช้เครื่องในท้องถิ่นเป็นเจ้าของและเมื่อฉันกดไปที่เซิร์ฟเวอร์ระยะไกลจะเคารพเจ้าของเซิร์ฟเวอร์ระยะไกลของไฟล์และใช้งานได้อย่างมีเสน่ห์ เห็นได้ชัดว่าดูเหมือนข้อผิดพลาดเกี่ยวกับการอนุญาต แต่ฉันไม่สามารถหาวิธีแก้ไขได้คำแนะนำใด ๆ


11
“ ไม่สามารถอัปเดตพา ธ และเปลี่ยนเป็นสาขาได้ในเวลาเดียวกัน”
บางครั้งฉันใช้checkout -bตัวเลือกในการสร้างสาขาใหม่ตรวจสอบในเวลาเดียวกันและตั้งค่าการติดตามในคำสั่งเดียว ในสภาพแวดล้อมใหม่ฉันได้รับข้อผิดพลาดนี้: $ git checkout -b test --track origin/master fatal: Cannot update paths and switch to branch 'test' at the same time. Did you intend to checkout 'origin/master' which can not be resolved as commit? ทำไม Git ถึงไม่ชอบ สิ่งนี้เคยทำงานกับ repo เดียวกัน
186 git  git-checkout 

7
ฉันจะย้าย HEAD กลับไปยังตำแหน่งก่อนหน้าได้อย่างไร (หัวเดี่ยว) & เลิกทำ
ใน Git ฉันพยายามทำsquash commitโดยรวมสาขาอื่นแล้วรีเซ็ตHEADเป็นสถานที่ก่อนหน้าผ่าน: git reset origin/master แต่ฉันต้องก้าวออกจากนี้ ฉันจะย้าย HEAD กลับไปยังตำแหน่งก่อนหน้าได้อย่างไร ฉันมี SHA-1 fragment ( 23b6772) ของการกระทำที่ฉันต้องการย้ายไป ฉันจะกลับไปที่การกระทำนี้ได้อย่างไร?

3
ความแตกต่างระหว่าง git switch และ git checkout <branch>
Git 2.23 แนะนำคำสั่งใหม่git switch- หลังจากอ่านเอกสารดูเหมือนว่าจะค่อนข้างเหมือนกับที่git checkout &lt;branchname&gt;ใครบางคนสามารถอธิบายความแตกต่างหรือกรณีการใช้งานได้หรือไม่? คำสั่งใหม่สองคำสั่ง "git switch" และ "git restore" ถูกนำมาใช้เพื่อแยก "การตรวจสอบสาขาเพื่อทำงานในการพัฒนาประวัติ" และ "การตรวจสอบเส้นทางออกจากดัชนีและ / หรือ Tree-ish เพื่อทำงานในการก้าวหน้าในปัจจุบัน history "จากคำสั่ง git checkout" เดียว

6
เหตุใด git-rebase จึงทำให้ฉันมีข้อขัดแย้งในการรวมเมื่อสิ่งที่ฉันทำคือการแบน
เรามีพื้นที่เก็บข้อมูล Git ที่มีการกระทำมากกว่า 400 ครั้งสองสามคู่แรกนั้นมีการทดลองและข้อผิดพลาดมากมาย เราต้องการที่จะทำความสะอาดการกระทำเหล่านี้โดยการบีบลงไปในการกระทำเดียว ตามธรรมชาติแล้วการรีต git-reb ดูเหมือนจะเป็นไป ปัญหาของฉันคือมันจบลงด้วยการรวมความขัดแย้งและความขัดแย้งเหล่านี้ไม่ใช่เรื่องง่ายที่จะแก้ไข ฉันไม่เข้าใจว่าทำไมจึงควรมีข้อขัดแย้งใด ๆ เนื่องจากฉันเพิ่งจะคอมมิชชัน (ไม่ลบหรือจัดเรียงใหม่) เป็นไปได้อย่างมากที่สิ่งนี้แสดงให้เห็นว่าฉันไม่ได้เข้าใจอย่างสมบูรณ์ว่าการทำ git-rebase นั้นทำได้อย่างไร นี่คือสคริปต์ที่ฉันใช้อยู่เวอร์ชันที่แก้ไข: repo_squash.sh (นี่คือสคริปต์ที่ทำงานจริง): rm -rf repo_squash git clone repo repo_squash cd repo_squash/ GIT_EDITOR=../repo_squash_helper.sh git rebase --strategy theirs -i bd6a09a484b8230d0810e6689cf08a24f26f287a repo_squash_helper.sh (สคริปต์นี้ใช้โดย repo_squash.sh เท่านั้น): if grep -q "pick " $1 then # cp $1 …

14
แท็กการชำระเงิน git การดึงคอมไพล์ล้มเหลวในสาขา
ฉันได้โคลนที่เก็บ git แล้วตรวจสอบแท็ก: # git checkout 2.4.33 -b my_branch ไม่เป็นไร แต่เมื่อฉันพยายามเรียกใช้git pullในสาขาของฉันคอมไพล์พ่นข้อผิดพลาดนี้: ไม่มีข้อมูลการติดตามสำหรับสาขาปัจจุบัน โปรดระบุสาขาที่คุณต้องการรวมเข้าด้วยกัน ดู git-pull (1) สำหรับรายละเอียด git pull &lt;remote&gt; &lt;branch&gt; หากคุณต้องการตั้งค่าข้อมูลการติดตามสำหรับสาขานี้คุณสามารถทำได้โดย: git branch --set-upstream new origin/&lt;branch&gt; ฉันต้องการgit pullอัปเดตสาขาหลักเท่านั้นและปล่อยให้สาขาปัจจุบันของฉันอยู่คนเดียว (มันเป็นแท็กอยู่ดี) สิ่งนี้เป็นไปได้หรือไม่? เหตุผลที่ฉันต้องการสิ่งนี้คือฉันมีสคริปต์อัตโนมัติที่ git ดึงที่เก็บเสมอและแน่นอนว่าล้มเหลวเนื่องจากข้อผิดพลาดด้านบน ..

6
เกิดข้อผิดพลาดเมื่อเปลี่ยนเป็นสาขาหลัก: การเปลี่ยนแปลงในเครื่องของฉันจะถูกเขียนทับโดยการชำระเงิน
คำถามนี้คล้ายกับคำถามนี้แต่เจาะจงมากกว่า ฉันมีโครงการที่มีสองสาขา ( stagingและbeta) ฉันพัฒนาstagingและใช้masterสาขาเพื่อแก้ไขข้อบกพร่อง ดังนั้นหากฉันกำลังดำเนินการจัดเตรียมและฉันเห็นข้อผิดพลาดฉันเปลี่ยนเป็นmasterสาขา: git checkout master และทำสิ่งต่างๆ: git add fileToAdd git commit -m "bug fixed" จากนั้นฉันรวมกับทั้งสองสาขา: git checkout staging git merge master git checkout beta git merge beta และไม่สำคัญว่าจะมีไฟล์อื่นอยู่บนแผนผังการทำงานหรือไม่ แต่ตอนนี้เมื่อฉันพยายามเปลี่ยนเป็นmasterสาขาฉันได้รับข้อผิดพลาด : error: Your local changes to the following files would be overwritten by checkout: src/Pro/ConvocationBundle/Controller/DefaultController.php Please, commit …
129 git  git-checkout 

2
git ชำระเงินไฟล์ทั้งหมด
ฉันจะกำจัดการเปลี่ยนแปลงทั้งหมดในไฟล์ทั้งหมดในที่เก็บของฉันได้อย่างไร สมมติว่าฉันอยู่ในสาขาและได้ทำการเปลี่ยนแปลงบางอย่าง git statusส่งคืนชุดไฟล์ในส่วน "การเปลี่ยนแปลงที่ไม่จัดฉากสำหรับการกระทำ" และฉันสังเกตเห็นว่าฉันต้องการกำจัดการเปลี่ยนแปลงทั้งหมดนี้ในไฟล์ทั้งหมด ฉันจะทำสิ่งนี้ด้วยคำสั่งเดียวได้อย่างไร? ฉันรู้ว่าฉันสามารถทำสิ่งต่อไปนี้เพื่อชำระเงินเพียงไฟล์เดียว: git checkout -- &lt;file&gt; ฉันสังเกตเห็นว่าgit checkout --เพียงอย่างเดียวส่งคืนรายการไฟล์ที่ไม่ได้รับคำสั่งทั้งหมด git checkout --allแต่ผมไม่สามารถหาวิธีการชำระเงินทั้งหมดของพวกเขาบางอย่างเช่น ฉันตรวจสอบman git checkoutแล้วไม่พบอะไร นอกจากนี้ฉันเห็นGit: ชำระเงินทุกไฟล์ยกเว้นไฟล์เดียวและลองgit checkout .แล้วก็ไม่ได้ผลเช่นกัน ฉันจะต้องทำแบบเป็นโปรแกรมโดยการวนลูปผ่านgit checkout --เอาต์พุตหรือไม่?
127 git  git-checkout 

8
กู้คืนโฟลเดอร์ที่ถูกลบใน Git repo
ฉันได้ลบเนื้อหาทั้งหมดในโฟลเดอร์และโฟลเดอร์ว่างเปล่า ฉันยังมีสำเนาใน repo ระยะไกลของฉัน แต่เมื่อฉันไม่git pullได้ใส่ไฟล์ที่ถูกลบกลับไม่ควรทำเช่นนั้น? ดังนั้นฉันจึงทำการค้นคว้าและเห็นว่าคุณสามารถเปลี่ยนไฟล์กลับคืนมาได้โดยทำ git checkout &lt;revision&gt; -- &lt;name of file&gt; แต่ใช้ได้กับไฟล์เท่านั้น ฉันจะดึงไฟล์ทั้งหมดในไดเร็กทอรีได้อย่างไร?
101 git  git-checkout 

11
เปลี่ยนสาขา Git โดยไม่ต้องชำระเงินไฟล์
เป็นไปได้ไหมใน Git ที่จะเปลี่ยนไปใช้สาขาอื่นโดยไม่ตรวจสอบไฟล์ทั้งหมด หลังจากเปลี่ยนสาขาฉันต้องลบไฟล์ทั้งหมดสร้างใหม่คอมมิตและเปลี่ยนกลับ ดังนั้นการตรวจสอบไฟล์จึงเสียเวลา (และมีไฟล์ประมาณ 14,000 ไฟล์ซึ่งใช้งานได้ยาวนาน) เพื่อให้ทุกอย่างชัดเจน: ฉันต้องการทั้งหมดนี้เพื่ออัปโหลดเอกสารไปยัง GitHub ฉันมีที่เก็บที่มีสาขาgh-pages เมื่อฉันสร้างเอกสารภายในเครื่องใหม่ฉันคัดลอกไปยังไดเร็กทอรีที่เก็บคอมมิตและพุชไปที่ GitHub แต่ฉันไม่มีความสุขเพราะฉันมีเอกสารสองชุดในเครื่อง และฉันตัดสินใจที่จะสร้างสาขาที่ว่างเปล่าและหลังจากตกลงแล้วให้เปลี่ยนเป็นว่างและลบไฟล์ แต่การเปลี่ยนกลับเป็นการดำเนินการที่ยาวนานฉันจึงถามคำถามนี้ ฉันรู้ว่าฉันสามารถออกจากสาขาgh-pagesและลบไฟล์ได้ แต่ฉันไม่ชอบต้นไม้ที่ทำงานสกปรก
100 git  branch  git-checkout 

3
git checkouts หมายความว่าอย่างไร?
อะไรคือcheckoutในคอมไพล์? ฉันรู้ว่าเมื่อคุณทำcheckoutกับสาขาใดสาขาหนึ่งHEADชี้ไปที่สาขานั้น แต่จริงๆแล้วมันหมายความว่าอย่างไร? หมายความว่าฉันสามารถทำงานในสาขานั้นได้หรือไม่? ถ้าใช่หากไม่ได้ตรวจสอบสาขาฉันไม่สามารถทำงานได้? นอกจากนี้remote checkoutหมายความว่าอย่างไร? มีประโยชน์อย่างไร?
96 git  git-checkout 

2
เป็นไปได้ไหมที่จะ git-checkout บรรทัดเดียวแทนที่จะเป็นทั้งไฟล์
หากฉันแก้ไขไฟล์เวอร์ชันหลายบรรทัดเป็นไปได้ไหมที่จะเลิกทำการเปลี่ยนแปลงของบรรทัดตามบรรทัดคำสั่ง เช่นเดียวกับที่ฉันทำกับทั้งไฟล์ด้วย: git checkout /path/to/file.extension แต่ทำอะไรบางอย่างเช่นพูด git checkout /path/to/file.extension --line 10 เป็นไปได้ไหม
88 git  git-checkout 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.