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

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

8
Git ผสานต้นแบบเข้ากับสาขาคุณลักษณะ
สมมติว่าเรามีสถานการณ์ต่อไปนี้ใน Git: พื้นที่เก็บข้อมูลที่สร้างขึ้น: mkdir GitTest2 cd GitTest2 git init การดัดแปลงบางอย่างในต้นแบบเกิดขึ้นและได้รับการยอมรับ: echo "On Master" > file git commit -a -m "Initial commit" Feature1 แยกออกจากงานหลักและงานบางอย่างเสร็จแล้ว: git branch feature1 git checkout feature1 echo "Feature1" > featureFile git commit -a -m "Commit for feature1" ในขณะเดียวกันจะพบข้อบกพร่องในรหัสหลักและมีการสร้างสาขาโปรแกรมแก้ไขด่วน: git checkout master git branch hotfix1 git checkout hotfix1 …

10
เลิกทำการดึงคอมไพล์วิธีนำ repos กลับสู่สถานะเดิม
มีวิธีใดที่จะเปลี่ยนหรือยกเลิกการดึง git เพื่อให้แหล่งที่มา / repos ของฉันจะเข้าสู่สถานะเดิมที่เคยทำ git pull หรือไม่? ฉันต้องการทำเช่นนี้เพราะมันรวมไฟล์บางไฟล์ที่ฉันไม่ต้องการให้ทำ แต่รวมไฟล์ที่เหลือเท่านั้น ดังนั้นฉันต้องการเอาไฟล์เหล่านั้นกลับมาเป็นไปได้ไหม? แก้ไข: ฉันต้องการยกเลิกการคอมไพล์เพื่อชี้แจง หลังจากเห็นคำตอบบางอย่างฉันก็ทำอย่างนี้ git reflog bb3139b... HEAD@{0}: pull : Fast forward 01b34fa... HEAD@{1}: clone: from ...name... ตอนนี้ฉันควรทำอย่างไร กำลังทำอะไรgit reset --hard อยู่ ฉันไม่ต้องการขันมันอีกครั้งดังนั้นขอขั้นตอนอย่างละเอียดหรือ

9
ฮาร์ดรีเซ็ตไฟล์เดียว
ขณะนี้ฉันมีไฟล์ที่แก้ไขแล้วสามไฟล์ในไดเรกทอรีงานของฉัน อย่างไรก็ตามฉันต้องการให้หนึ่งในนั้นถูกรีเซ็ตเป็นสถานะ HEAD ใน SVN, ฉันต้องการใช้svn revert <filename>(ตามด้วยsvn update <filename>ถ้าจำเป็น) แต่ใน Git git reset --hardฉันควรใช้ อย่างไรก็ตามคำสั่งนี้ไม่สามารถทำงานกับไฟล์เดียว มีวิธีใดใน Git ที่จะละทิ้งการเปลี่ยนแปลงไปยังไฟล์เดียวและเขียนทับด้วย HEAD copy อันใหม่?
1005 git 

6
Git: สร้างสาขาจากการเปลี่ยนแปลงแบบไม่มีสเตจ / ไม่มีข้อผูกมัดบนมาสเตอร์
บริบท: ฉันกำลังพัฒนาต้นแบบเพิ่มคุณสมบัติอย่างง่าย หลังจากนั้นไม่กี่นาทีฉันก็รู้ว่ามันไม่ง่ายเลยและน่าจะดีกว่าถ้าได้ทำงานในสาขาใหม่ สิ่งนี้เกิดขึ้นกับฉันเสมอและฉันไม่รู้ว่าจะเปลี่ยนไปใช้สาขาอื่นได้อย่างไรและรับการเปลี่ยนแปลงที่ไม่ได้รับการแจ้งเตือนเหล่านี้ทั้งหมดจากฉันโดยปล่อยให้สาขาหลักสะอาด ฉันควรgit stash && git stash branch new_branchจะทำอย่างนั้น แต่นี่คือสิ่งที่ฉันได้รับ: ~/test $ git status # On branch master nothing to commit (working directory clean) ~/test $ echo "hello!" > testing ~/test $ git status # On branch master # Changed but not updated: # (use "git add <file>..." …
991 git  git-stash 

8
สร้างสาขาใน Git จากสาขาอื่น
ฉันมีสองสาขา: masterและdev ฉันต้องการที่จะสร้าง "สาขาคุณลักษณะ" จากdevสาขา ขณะนี้อยู่ที่การพัฒนาสาขาฉันทำ: $ git checkout -b myfeature dev ... (ทำงานบางส่วน) $ git commit -am "blablabla" $ git push origin myfeature แต่หลังจากเห็นภาพกิ่งไม้ของฉันฉันได้รับ: --**master** ------0-----0-----0-----0-----0 ------------------------**dev**----**myfeature** ฉันหมายความว่าสาขาดูเหมือน ff ที่รวมเข้าด้วยกันและฉันไม่เข้าใจว่าทำไม ... ฉันทำอะไรผิด คุณช่วยอธิบายฉันทีว่าคุณแยกสาขาจากสาขาอื่นและผลักดันกลับไปยังที่เก็บระยะไกลสำหรับสาขาฟีเจอร์ได้อย่างไร? ทุกสิ่งที่อยู่ในรูปแบบที่แตกแขนงเช่นเดียวที่อธิบายที่นี่

11
วิธีการมีชื่อไฟล์บันทึก git แสดงเช่น svn log -v
บันทึกของ SVN มีโหมด "-v" ที่ส่งออกชื่อไฟล์ของไฟล์ที่เปลี่ยนแปลงในแต่ละการกระทำเช่น: jes5199 $ svn บันทึก -v -------------------------------------------------- ---------------------- r1 | jes5199 | 2007-01-03 14:39:41 -0800 (พุธ, 3 มกราคม 2550) | 1 บรรทัด เส้นทางที่เปลี่ยนแปลง: A / AUTHORS A / การคัดลอก A / ChangeLog A / วิวัฒนาการ A / ติดตั้ง A / MacOSX มีวิธีที่รวดเร็วในการรับรายการไฟล์ที่เปลี่ยนแปลงในแต่ละคอมมิทด้วยคอมไพล์หรือไม่?
987 svn  git  logging 

12
วิธีการย้อนกลับคอมไพล์หลายคอมมิท
ฉันมีที่เก็บ git ที่มีลักษณะเช่นนี้: A -> B -> C -> D -> HEAD ฉันต้องการให้หัวหน้าสาขาชี้ไปที่ A เช่นฉันต้องการให้ B, C, D และ HEAD หายไปและฉันต้องการให้หัวมีความหมายเหมือนกันกับ A ดูเหมือนว่าฉันจะพยายามรีบูต (ไม่ได้ใช้เนื่องจากฉันผลักการเปลี่ยนแปลงระหว่าง) หรือเปลี่ยนกลับ แต่ฉันจะยกเลิกการคอมมิชชันหลายรายการได้อย่างไร ฉันจะย้อนกลับทีละครั้งหรือไม่? คำสั่งซื้อสำคัญหรือไม่
982 git  commit  git-revert 

11
การเปลี่ยนคอมมิทข้อความหลังจากกด (เนื่องจากไม่มีใครดึงมาจากระยะไกล)
ฉันได้ทำคอมไพล์และผลักดันในภายหลัง ฉันต้องการเปลี่ยนข้อความยืนยัน ถ้าฉันเข้าใจถูกต้องนี่ไม่แนะนำให้เลือกเพราะบางคนอาจดึงจากที่เก็บระยะไกลก่อนที่ฉันจะทำการเปลี่ยนแปลงดังกล่าว ถ้าฉันรู้ว่าไม่มีใครดึง? มีวิธีทำเช่นนี้หรือไม่?
981 git  push  commit 

6
อะไรคือความแตกต่างระหว่าง "git merge" และ "git merge - no-ff"
ใช้gitk logฉันไม่สามารถเห็นความแตกต่างระหว่างทั้งสอง ฉันจะสังเกตเห็นความแตกต่างได้อย่างไร (ด้วยคำสั่ง git หรือเครื่องมือบางตัว)
977 git  merge  fast-forward 

19
ฉันจะหยุด. gitignore ไม่ให้ปรากฏในรายการไฟล์ที่ไม่ได้ติดตามได้อย่างไร
ฉันเพิ่งทำgit initรากของโครงการใหม่ของฉัน จากนั้นฉันก็สร้าง.gitignoreไฟล์ ตอนนี้เมื่อฉันพิมพ์git status, .gitignoreไฟล์ที่ปรากฏอยู่ในรายชื่อของไฟล์ที่ไม่ได้ติดตาม ทำไมถึงเป็นอย่างนั้น?

11
Git เวิร์กโฟลว์และคำถาม rebase vs ผสาน
ตอนนี้ฉันใช้ Git มาสองสามเดือนกับโปรเจ็กต์กับผู้พัฒนารายอื่น ฉันมีประสบการณ์หลายปีกับSVNดังนั้นฉันเดาว่าฉันจะนำสัมภาระจำนวนมากมาสู่ความสัมพันธ์ ฉันได้ยินมาว่า Git นั้นยอดเยี่ยมสำหรับการแยกและรวมเข้าด้วยกันและจนถึงตอนนี้ฉันไม่เห็นเลย แน่นอนว่าการแตกแขนงนั้นง่ายมาก แต่เมื่อฉันพยายามที่จะรวมทุกอย่างเข้าสู่นรก ตอนนี้ฉันคุ้นเคยกับเรื่องนี้จาก SVN แต่สำหรับฉันแล้วฉันเพิ่งแลกเปลี่ยนระบบเวอร์ชันย่อยแบบหนึ่งสำหรับอีกระบบหนึ่ง คู่ของฉันบอกฉันว่าปัญหาของฉันเกิดจากความปรารถนาของฉันที่จะผสานความจำเจและฉันควรใช้ rebase แทนการรวมในหลาย ๆ สถานการณ์ ตัวอย่างเช่นนี่คือขั้นตอนการทำงานที่เขาวางลง: clone the remote repository git checkout -b my_new_feature ..work and commit some stuff git rebase master ..work and commit some stuff git rebase master ..finish the feature git checkout master git merge …

11
สาขาหลักและ 'ต้นกำเนิด / ต้นแบบ' ได้แยกออกจากกันวิธีการ 'แยก' สาขา '
ไม่ว่าอาจารย์และสาขาต้นกำเนิด / หลักของฉันจะแยกกัน จริง ๆ แล้วฉันไม่ต้องการให้พวกเขาแตกต่าง ฉันจะดูความแตกต่างเหล่านี้และ 'รวม' พวกเขาได้อย่างไร
964 git  branch 

16
.gitignore ยกเว้นโฟลเดอร์ แต่รวมโฟลเดอร์ย่อยเฉพาะ
ฉันมีโฟลเดอร์ซึ่งผมเพิ่มapplication/ .gitignoreภายใน โฟลเดอร์เป็นโฟลเดอร์application/ application/language/grฉันจะรวมโฟลเดอร์นี้ได้อย่างไร ฉันได้ลองแล้ว application/ !application/language/gr/ โดยไม่มีโชค ...
964 git  gitignore 

30
ข้อผิดพลาดในการกด Git 'ต้นแบบถูกปฏิเสธจากระยะไกล -> ต้นแบบ (สาขาได้รับการชำระเงินในขณะนี้)'
เมื่อวานนี้ฉันโพสต์คำถามเกี่ยวกับวิธีการโคลนที่เก็บGitจากเครื่องหนึ่งไปยังอีกเครื่องฉันจะ 'git clone' จากเครื่องอื่นได้อย่างไร . ตอนนี้ฉันสามารถโคลนที่เก็บ Git จากแหล่งที่มาของฉัน (192.168.1.2) ไปยังปลายทางของฉันได้สำเร็จแล้ว (192.168.1.1) แต่เมื่อฉันแก้ไขไฟล์ a git commit -a -m "test"และ a git pushฉันได้รับข้อผิดพลาดนี้ที่ปลายทางของฉัน (192.168.1.1): git push hap@192.168.1.2's password: Counting objects: 21, done. Compressing objects: 100% (11/11), done. Writing objects: 100% (11/11), 1010 bytes, done. Total 11 (delta 9), reused 0 (delta 0) …
961 git  git-push 


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