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

Git เป็นระบบควบคุมเวอร์ชันแจกจ่ายแบบโอเพนซอร์ซ (DVCS) ใช้แท็กนี้สำหรับคำถามที่เกี่ยวข้องกับการใช้งาน Git และเวิร์กโฟลว์ อย่าใช้แท็ก [github] สำหรับปัญหาที่เกี่ยวข้องกับ Git เพียงเพราะพื้นที่เก็บข้อมูลเกิดขึ้นเพื่อโฮสต์บน GitHub นอกจากนี้อย่าใช้แท็กนี้สำหรับคำถามการเขียนโปรแกรมทั่วไปที่เกี่ยวข้องกับที่เก็บ Git

14
ดึง / ดันจากสถานที่ห่างไกลหลายแห่ง
สั้น:มีวิธีที่จะมี repo git ผลักดันและดึงจากรายการ repos ระยะไกล (แทนที่จะเป็น "แหล่งกำเนิด" เดียว)? ความยาว:ฉันมักจะมีสถานการณ์เมื่อฉันพัฒนาแอพในคอมพิวเตอร์หลายเครื่องที่มีการเชื่อมต่อที่แตกต่างกัน - พูดว่าแล็ปท็อประหว่างทางคอมพิวเตอร์ "A" ในขณะที่ฉันอยู่ในสถานที่หนึ่งและคอมพิวเตอร์อีกเครื่อง "B" ในขณะที่อีก นอกจากนี้แล็ปท็อปอาจมีการเชื่อมต่อด้วย "A" หรือ "B" เท่านั้นและบางครั้งทั้งสองอย่าง สิ่งที่ฉันต้องการให้ git คือ "ดึง" จากและ "ดัน" ไปยังคอมพิวเตอร์ทุกเครื่องที่สามารถเชื่อมต่อได้ในขณะนี้ดังนั้นจึงง่ายกว่าที่จะกระโดดจากเครื่องหนึ่งไปยังอีกเครื่องหนึ่งและทำงานต่อเนื่องได้อย่างราบรื่น
743 git 

30
ไม่สามารถผลักดันไปที่ GitHub - บอกว่าต้องการรวม
ฉันใหม่เพื่อGitHub วันนี้ฉันพบปัญหาบางอย่างเมื่อฉันพยายามที่จะผลักดันรหัสของฉันไปที่ GitHub Pushing to git@github.com:519ebayproject/519ebayproject.git To git@github.com:519ebayproject/519ebayproject.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'git@github.com:519ebayproject/519ebayproject.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Merge the remote changes (e.g. 'git pull') hint: before pushing again. …
743 git 

14
ความแตกต่างระหว่างการรีเซ็ต git --mixed, --soft และ --hard คืออะไร
ฉันต้องการแยกการมอบหมายและไม่แน่ใจว่าจะใช้ตัวเลือกการรีเซ็ตใด ฉันกำลังดูหน้านี้ในภาษาอังกฤษแบบธรรมดา "git reset" ทำอะไรได้บ้าง แต่ฉันรู้ว่าฉันไม่เข้าใจจริง ๆ ว่าดัชนี git หรือพื้นที่จัดเตรียมคืออะไรและคำอธิบายไม่ได้ช่วยอะไร นอกจากนี้กรณีการใช้งาน--mixedและ--softดูเหมือนกับฉันในคำตอบนั้น (เมื่อคุณต้องการแก้ไขและแนะนำ) บางคนสามารถทำลายมันได้มากยิ่งขึ้น? ผมทราบดีว่า--mixedน่าจะเป็นตัวเลือกที่จะไปด้วย แต่ผมต้องการที่จะรู้ว่าทำไม ท้ายสุดแล้วมันเกี่ยวกับ--hardอะไร? มีใครบ้างที่สามารถยกตัวอย่างเวิร์กโฟลว์ให้ฉันได้ว่าการเลือก 3 ตัวเลือกจะเกิดขึ้นได้อย่างไร


11
คุณจะลบการอ้างอิงสาขาระยะไกลที่ไม่ถูกต้องออกจาก Git ได้อย่างไร
ใน repo ปัจจุบันของฉันฉันมีผลลัพธ์ต่อไปนี้: $ git branch -a * master remotes/origin/master remotes/public/master ฉันต้องการลบremotes/public/masterจากรายการสาขา: $ git branch -d remotes/public/master error: branch 'remotes/public/master' not found. นอกจากนี้ผลลัพธ์ของgit remoteมันแปลกเพราะมันไม่ได้แสดงpublic: $ git remote show origin ฉันจะลบ 'รีโมท / สาธารณะ / มาสเตอร์' จากรายการสาขาได้อย่างไร อัปเดตลองgit pushคำสั่ง: $ git push public :master fatal: 'public' does not appear to be …

19
วิธีละเว้นไฟล์บางไฟล์ใน Git
ฉันมีที่เก็บพร้อมไฟล์Hello.java. เมื่อฉันรวบรวมมันHello.classไฟล์เพิ่มเติมจะถูกสร้างขึ้น ฉันสร้างรายการสำหรับHello.classใน.gitignoreไฟล์ อย่างไรก็ตามไฟล์ดังกล่าวยังคงถูกติดตาม ฉันจะทำให้ Git เพิกเฉยได้Hello.classอย่างไร
731 git  gitignore 

7
วิธีคัดลอกคอมมิทจากสาขาหนึ่งไปอีกสาขาหนึ่ง
ฉันมีสองสาขาจากเจ้านายของฉัน: v2.1 : (รุ่น 2) ฉันทำงานมาหลายเดือนแล้ว wss : ที่ฉันสร้างเมื่อวานนี้เพื่อเพิ่มหนึ่งคุณลักษณะเฉพาะให้กับเจ้านายของฉัน (กำลังการผลิต) มีวิธีการคัดลอกเมื่อวานนี้มุ่งมั่นจาก wss เพื่อ v2.1?

25
Mercurial และ Git ต่างกันอย่างไร
ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันใช้ git มาระยะหนึ่งแล้วบน Windows (กับ msysGit) และฉันชอบแนวคิดของการควบคุมแหล่งที่มาแบบกระจาย เมื่อไม่นานมานี้ฉันได้ดู Mercurial (hg) และมันน่าสนใจ อย่างไรก็ตามฉันไม่สามารถคลุมหัวความแตกต่างระหว่าง hg และ git มีใครทำการเปรียบเทียบแบบเคียงข้างกันระหว่างคอมไพล์และ hg หรือไม่ ฉันสนใจที่จะรู้ว่าสิ่งที่แตกต่าง hg และ git โดยไม่ต้องกระโดดลงไปในการสนทนาแฟนบอย

11
เป็นไปได้ไหมที่เชอร์รี่จะเลือกคอมมิทจากคอมไพล์ git อื่น?
ฉันกำลังทำงานกับที่เก็บ git ที่ต้องการคอมมิทจากที่เก็บ git อื่นที่ไม่รู้อะไรเลยก่อน โดยทั่วไปแล้วฉันจะเลือกใช้เชอร์รี่โดยใช้HEAD@{x}ในการอ้างอิง แต่เนื่องจาก.gitไม่มีความรู้ใด ๆ ในรายการ reflog นี้ (ไดเรกทอรีทางกายภาพที่แตกต่างกัน) ฉันจะเลือกเชอร์รี่นี้ได้อย่างไรหรือฉันจะทำอย่างไร git-svnฉันใช้ สาขาแรกของฉันคือการใช้git-svnของtrunkของธุรกรรมซื้อคืนภาคการโค่นล้มและสาขาต่อไปคือการใช้git-svnในสาขาการโค่นล้ม
726 git  cherry-pick 

14
มีตัวเลือก git-merge --dry-run หรือไม่
ฉันกำลังรวมในสาขาระยะไกลที่อาจมีความขัดแย้งมากมาย ฉันจะบอกได้อย่างไรว่ามันจะมีความขัดแย้งหรือไม่? ฉันไม่เห็นอะไรเหมือนใน --dry-rungit-merge
725 git  git-merge 

11
ฉันจะลบไฟล์ที่ระบุว่า "โหมดเก่า 100755 โหมดใหม่ 100644" จากการเปลี่ยนแปลงแบบไม่คงที่ใน Git ได้อย่างไร
ด้วยเหตุผลบางอย่างเมื่อตอนแรกที่ฉันดึงจากที่เก็บสำหรับโครงการคอมไพล์ของฉันฉันได้รับไฟล์จำนวนมากในสำเนาการทำงานของฉันที่ไม่มีการเปลี่ยนแปลงที่สังเกตเห็นได้ แต่ยังปรากฏในunstaged changesพื้นที่ ของฉัน ฉันใช้ Git Gui บน Windows xp และเมื่อฉันไปดูไฟล์เพื่อดูว่ามีอะไรเปลี่ยนแปลง ทั้งหมดที่ฉันเห็นคือ: old mode 100755 new mode 100644 ไม่มีใครรู้ว่าสิ่งนี้หมายความว่าอย่างไร ฉันจะลบไฟล์เหล่านี้ออกจากรายการการเปลี่ยนแปลงแบบไม่จัดเตรียมได้อย่างไร? (น่ารำคาญมากที่ต้องผ่านไฟล์หลายร้อยไฟล์เพียงเพื่อเลือกไฟล์ที่ฉันเพิ่งแก้ไขและต้องการส่ง)
723 git  git-gui 

7
วิธีการเปลี่ยนที่เก็บระยะไกลสำหรับ submodule git หรือไม่
ฉันได้สร้างที่เก็บ git พร้อม submodule ในนั้น ฉันสามารถบอก submodule ตัวเองเพื่อเปลี่ยนพา ธ ของที่เก็บข้อมูลรีโมต แต่ฉันไม่แน่ใจว่าจะบอกที่เก็บพาเรนต์วิธีเปลี่ยนพา ธ ของที่เก็บรีโมตสำหรับ submodule ได้อย่างไร ฉันจะไม่แปลกใจถ้าฉันค่อนข้างโชคดีและต้องทำสิ่งต่าง ๆ ด้วยตนเองเนื่องจากการลบ submodules ไม่ใช่เรื่องง่าย

11
ลบคอมมิทคอมมิทที่ยังไม่ได้กด
ฉันทำแล้วgit commitแต่ยังไม่ได้ผลักไปยังที่เก็บ ดังนั้นเมื่อฉันทำgit statusฉันจะได้ '# สาขาของคุณอยู่ก่อนหน้า' master 'โดย 1 กระทำ ดังนั้นถ้าฉันต้องการย้อนกลับการกระทำสูงสุดของฉันฉันจะทำ: git reset --hard eb27bf26dd18c5a34e0e82b929e0d74cfcaab316 เมื่อฉันฉันจะgit logได้รับ: กระทำ eb27bf26dd18c5a34e0e82b929e0d74cfcaab316 วันที่: อังคาร 29 กันยายน 11:21:41 2009 -0700 กระทำ db0c078d5286b837532ff5e276dcf91885df2296 วันที่: อ. 22 ก.ย. 10:31:37 น. -0700
722 git 

9
การรีเซ็ตรีโมตเป็นการกระทำที่แน่นอน
ฉันต้องการยกเลิกการเปลี่ยนแปลงทั้งหมดที่ทำหลังจากส่งมอบ<commit-hash>แล้ว ดังนั้นฉันจึง: git reset --hard <commit-hash> ตอนนี้ฉันต้องการทำเช่นเดียวกันกับรีโมทของฉัน ฉันจะทำสิ่งนี้ได้อย่างไร ฉันได้ทำบางอย่าง (และดัน) หลังจากนั้น<commit-hash>และฉันต้องการที่จะทิ้งพวกเขาทั้งหมด เป็นเพียงบางสิ่งที่ผิดอย่างมากในทางและฉันไม่ต้องการทำให้มันแย่กว่าที่มีอยู่แล้ว ( โดยทั่วไปฉันต้องการย้อนกลับorigin/masterไปเป็น<commit-hash>
709 git 

18
วิธีการลบ / ลบไฟล์ขนาดใหญ่จากการคอมมิทประวัติในที่เก็บ Git?
บางครั้งฉันทำ DVD-rip ลงในโปรเจ็กต์ของเว็บไซต์จากนั้นสะเพร่าgit commit -a -m ...และในกรณีที่ซื้อคืน repo นั้นมีจำนวน 2.2 กิ๊ก ครั้งต่อไปที่ฉันทำการแก้ไขลบไฟล์วิดีโอและยืนยันทุกอย่าง แต่ไฟล์บีบอัดยังคงอยู่ในที่เก็บในประวัติ ฉันรู้ว่าฉันสามารถเริ่มต้นสาขาจากการกระทำเหล่านั้นและรีบูตสาขาหนึ่งไปยังสาขาอื่น แต่ฉันควรทำอย่างไรเพื่อรวม 2 คอมมิชชันเข้าด้วยกันเพื่อไม่ให้ไฟล์ขนาดใหญ่ปรากฏในประวัติและถูกล้างข้อมูลในขั้นตอนการรวบรวมขยะ

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