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

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

7
ฉันจะจัดการความขัดแย้งกับโมดูลย่อย git ได้อย่างไร
ฉันมี superproject คอมไพล์ที่อ้างถึงโมดูลย่อยหลายโมดูลและฉันกำลังพยายามล็อกขั้นตอนการทำงานเพื่อให้สมาชิกโปรเจ็กต์ที่เหลือของฉันทำงานได้ สำหรับคำถามนี้ช่วยบอก superproject ของฉันเรียกว่าsuperyและ submodule subbyที่เรียกว่า (จากนั้นเป็นการลดความซับซ้อนของสิ่งที่ฉันกำลังพยายามทำ ... ฉันไม่ได้ใช้กิ่งก้านสำหรับเวอร์ชันจริงๆ แต่ฉันคิดว่ามันจะง่ายที่สุดในการจัดวางเป็นคำถาม) สาขาหลักของฉันsuperyมีแท็กv1.0ของโครงการ git ที่subbyอ้างถึงเป็นโมดูลย่อย สาขาของsuperyเรียกone.oneและเปลี่ยนการอ้างอิงของ submodule ที่จะชี้ไปที่แท็กของv1.1subby ฉันสามารถทำงานในแต่ละสาขาเหล่านี้ได้โดยไม่มีข้อติดขัด แต่ถ้าฉันพยายามอัปเดตone.oneสาขาด้วยการเปลี่ยนแปลงจากmasterสาขาฉันได้รับความขัดแย้งบางอย่างและฉันไม่สามารถแก้ไขได้อย่างไร โดยทั่วไปหลังจากทำงานgit pull . masterในsubbyสาขาไประยะหนึ่งดูเหมือนว่าจะสร้างโมดูลย่อยเพิ่มเติม ก่อนที่จะดึง / รวมฉันได้รับคำตอบที่ต้องการgit submoduleจากone.oneสาขา: $ git checkout master $ git submodule qw3rty...321e subby (v1.0) $ git checkout one.one $ git submodule asdfgh...456d subby (v1.1) แต่หลังจากดึงมันจะเพิ่มโมดูลย่อยเพิ่มเติมเมื่อฉันเรียกใช้git submodule: …

6
จะฉีดยาระหว่างการกระทำโดยพลการสองครั้งในอดีตได้อย่างไร?
สมมติว่าฉันมีประวัติการกระทำต่อไปนี้ในสาขาในพื้นที่ของฉันเท่านั้น: A -- B -- C ฉันจะแทรกคอมมิตใหม่ระหว่างAและได้Bอย่างไร?
128 git 

5
Git push / clone ไปยังเซิร์ฟเวอร์ใหม่
ฉันเพิ่งเรียนรู้ Git และมีบางอย่างที่ฉันไม่สามารถทำได้ หลังจากสร้างและใช้ที่เก็บ git ในเครื่อง Mac ของฉันฉันสามารถส่งสำเนาไปยังเซิร์ฟเวอร์อื่นที่อื่นได้หรือไม่ ฉันอยู่หลังไฟร์วอลล์ดังนั้นฉันจึงไม่สามารถเรียกใช้git cloneจากเครื่องอื่นได้
127 git 

5
วิธีคัดลอกสาขา Git ในเครื่องไปยัง repo ระยะไกล
ฉันได้ทำตามขั้นตอนต่อไปนี้แล้ว: โคลน repo Git ระยะไกล แยกสาขาหลักเป็นการทดลอง แก้ไข / ทดสอบ / แก้ไขโค้ดในสาขาทดลอง ตอนนี้ฉันยังไม่พร้อมที่จะรวมการทดลองเป็นหลัก อย่างไรก็ตามฉันต้องการส่งกลับไปที่ repo ระยะไกลเนื่องจากเป็นที่เก็บที่ฉันแชร์กับเพื่อนร่วมงานสองสามคน ฉันต้องการให้พวกเขาเห็นสิ่งที่ฉันได้ทำในสาขาทดลอง โดยปกติฉันจะเข้าถึง repo ระยะไกลผ่าน SSH ฉันจะแบ่งปันสาขาในพื้นที่ของฉันบน repo ระยะไกลโดยไม่กระทบกับสาขาหลักของ repo ระยะไกลได้อย่างไร

1
จะยกเลิก rebase แบบโต้ตอบได้อย่างไรหาก --abort ไม่ทำงาน
ฉันตกอยู่ในความสับสนผ่าน rebase แบบโต้ตอบและตอนนี้ฉันต้องการยกเลิก (เช่นย้อนกลับไปก่อนที่ฉันจะถูกทิ้งเข้าสู่โหมด rebase แบบโต้ตอบในกรณีของฉันผ่านgit pull --rebase) วิธีการทำเช่นนี้ดูเหมือนจะผ่านgit rebase --abortแต่วิธีนี้ใช้ไม่ได้: $ git rebase --abort error: Ref refs/heads/master is at 55b388c141b1485b1acd9e050dbeb0eb90ef2ee7 but expected b918ac16a33881ce00799bea63d9c23bf7022d67 fatal: Cannot lock the ref 'refs/heads/master'. Could not move back to refs/heads/master ฉันจะออกจากโหมด rebase แบบโต้ตอบและล้างข้อมูลอ้างอิงทั้งหมดได้อย่างไร ( git reset --hardประสบความสำเร็จ แต่ไม่ทำให้ฉันออกจากโหมด rebase)
127 git  exit  rebase  abort  quit 

2
ดูประวัติคอมไพล์สำหรับโฟลเดอร์
ฉันจะดูประวัติบันทึก git สำหรับไฟล์ทั้งหมดภายในโฟลเดอร์ได้อย่างไร ฉันพบโพสต์มากมายเกี่ยวกับวิธีแสดงบันทึกสำหรับไฟล์บางไฟล์ แต่ไม่พบโฟลเดอร์ใดโฟลเดอร์หนึ่ง
127 git 


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

2
รับคอมไพล์ทั้งหมดตั้งแต่แท็กสุดท้าย
เมื่อฉันจะแท็กคอมมิตฉันจำเป็นต้องรู้ว่ามีอะไรเปลี่ยนแปลงไปบ้างตั้งแต่คอมมิตที่แท็กล่าสุด เช่น: a87a6sdf87a6d4 Some new feature a87a6sdf87a6d3 Some bug fix a87a6sdf87a6d2 Some comments added a87a6sdf87a6d1 Some merge <- v1.4.0 ในตัวอย่างนี้ฉันต้องการทราบเกี่ยวกับการคอมมิตใหม่ล่าสุด 3 รายการหรือสามารถพิมพ์บันทึกได้เหมือนข้างบนซึ่งแสดงว่าทั้งสองคอมมิตแท็กของพวกเขาถ้ามี และเมื่อฉันเห็นว่ามีการเพิ่มคุณสมบัติใหม่ฉันจะติดแท็ก v1.5.0 คุณจัดการกับเรื่องนี้อย่างไร? ฉันควรจะใช้แท็กหรือไม่ ฉันควรเขียนอะไรในข้อความแท็ก ฉันมักจะเว้นว่างไว้เสมอ:git tag -a v1.2.3 -m ''

5
git push ล้มเหลว: RPC ล้มเหลว; ผลลัพธ์ = 22, รหัส HTTP = 411
มีสาขาเดียวค่ะ ฉันใช้มาสองสามเดือนแล้ว git push origin master เพื่อยอมรับที่เก็บในเครื่องของฉัน เมื่อคืนหลังจากที่ฉันทำการเปลี่ยนแปลงเล็กน้อยกับที่เก็บในเครื่องของฉันและพยายามดันโดยใช้คำสั่งเดียวกันฉันได้รับข้อผิดพลาดนี้: error: RPC failed; result=22, HTTP code = 411 fatal: The remote end hung up unexpectedly fatal: The remote end hung up unexpectedly Everything up-to-date ฉัน googled และพบคำถามเช่นนี้และคนนี้แต่ไม่มีคำตอบสำหรับคำถามเหล่านี้จะช่วยแก้ปัญหาของฉัน ส่วนใหญ่ของคำตอบที่ชี้ให้เห็นปัญหาของหัวเดี่ยว แต่ฉันไม่คิดว่าหัวของฉันจะหลุดออกไป ฉันไม่คิดว่าฉันอยู่ผิดสาขา (เพราะฉันมีเพียงสาขาเดียว ... ) ฉันได้ทำการทดลองสองสามครั้งเพื่อหาว่ามีอะไรผิดปกติและนี่คือผลลัพธ์ที่ฉันได้รับ: (1) git statusผลลัพธ์ของฉันมาก่อน # On branch master # …
127 git  github 

9
ชำระเงิน git repos หลายรายการในพื้นที่ทำงาน Jenkins เดียวกัน
ใช้ปลั๊กอิน Jenkins 1.501 และ Jenkins Git 1.1.26 ฉันมี 3 git repos ที่แตกต่างกันแต่ละรายการมีหลายโครงการ ตอนนี้ฉันต้องการเช็คเอาต์โปรเจ็กต์ทั้งหมดจาก 3 git repos ไปยังพื้นที่ทำงานเดียวกันบนทาสเจนกินส์ ฉันได้กำหนดแต่ละ git repo ใน: การจัดการซอร์สโค้ด: SCM หลายรายการ แต่ทุกครั้งที่ตรวจสอบ repo repo ก่อนหน้า (และโครงการที่เกี่ยวข้อง) จะถูกลบ ฉันได้อ่านสิ่งนี้: http://jenkins.361315.n4.nabble.com/multiple-git-repos-in-one-job-td4633300.html แต่มันไม่ได้ช่วยจริงๆ ฉันได้พยายามระบุโฟลเดอร์เดียวกันภายใต้Local subdirectory สำหรับ repo (ทางเลือก)สำหรับ repos ทั้งหมด แต่ให้ผลลัพธ์เหมือนกัน หากสิ่งนี้เป็นไปไม่ได้เลยโดยใช้ Jenkins ฉันเดาว่าอาจใช้ขั้นตอน / สคริปต์ก่อนสร้างเพื่อย้ายโครงการไปยังตำแหน่งที่ถูกต้อง ไม่ใช่ตัวเลือกในการแก้ไขการกำหนดค่าการสร้างของโครงการ
127 git  jenkins 

10
GIT กระทำเป็นผู้ใช้รายอื่นโดยไม่มีอีเมล / หรืออีเมลเท่านั้น
ฉันพยายามเปลี่ยนแปลงบางอย่างในฐานะผู้ใช้รายอื่น แต่ฉันไม่มีที่อยู่อีเมลที่ถูกต้องคำสั่งต่อไปนี้ใช้ไม่ได้สำหรับฉัน: git commit --author="john doe" -m "some fix" fatal: No existing author found with 'john doe' ฉันมีปัญหาเดียวกันเมื่อพยายามยืนยันด้วยที่อยู่อีเมลเท่านั้น git commit --author="john@doe.com" -m "some fix" fatal: No existing author found with 'john@doe.com' ในเพจ GIT man สำหรับคำสั่งคอมมิตมันบอกว่าฉันสามารถใช้ไฟล์ standard A U Thor <author@example.com> format สำหรับตัวเลือก --author รูปแบบนี้กำหนดไว้ที่ไหน? A และ U หมายถึงอะไร? ฉันจะยอมรับผู้ใช้รายอื่นที่มีเพียงชื่อผู้ใช้หรือเพียงอีเมลได้อย่างไร
127 git  commit 

3
Git: แสดงรายการการเปลี่ยนแปลงที่ไม่ได้ผสานทั้งหมดในคอมไพล์
การสร้างสาขาสำหรับหัวข้อต่างๆและไม่ได้ลบออกเป็นประจำเมื่อฉันไม่ต้องการอีกต่อไปตอนนี้ฉันมีสาขาประมาณ 50 สาขา;) ฉันพยายามลบสาขาและบางสาขามีการเปลี่ยนแปลงที่ยังไม่ได้ผสาน สิ่งที่ฉันต้องการคือความสามารถในการดูว่ามีการเปลี่ยนแปลงอะไรบ้างในสาขาใด ๆ ใน repo ของฉันที่ไม่ได้อยู่ในต้นแบบ มีวิธีทำไหม ขอบคุณล่วงหน้า.
127 git  branch 

3
Git Pull กับ Git Rebase
ฉัน Noob ใน Git และพยายามที่จะเรียนรู้แตกต่างระหว่างVSgit pull git rebaseมีใครช่วยยกตัวอย่างได้ไหมว่าเมื่อใดควรใช้ตัวเลือกใดเนื่องจากฉันรู้สึกว่าทั้งสองมีจุดประสงค์เดียวกัน
127 git 

8
จะ 'git pull' เข้าไปในสาขาที่ไม่ใช่สาขาปัจจุบันได้อย่างไร?
เมื่อคุณเรียกใช้git pullในสาขาก็มักจะดึงจากmaster origin/masterฉันอยู่ในสาขาอื่นที่เรียกว่าnewbranchแต่ฉันต้องการเรียกใช้คำสั่งที่ทำgit pullจากorigin/masterเข้าmasterแต่ฉันไม่สามารถเรียกใช้git checkoutเพื่อเปลี่ยนสาขาที่เลือกได้จนกว่าการดึงจะเสร็จสมบูรณ์ มีวิธีทำไหม? เพื่อให้พื้นหลังบางส่วนพื้นที่เก็บข้อมูลจะจัดเก็บเว็บไซต์ ฉันได้ทำการเปลี่ยนแปลงบางอย่างในและใช้งานพวกเขาโดยการเปลี่ยนเว็บไซต์เพื่อnewbranch newbranchตอนนี้การเปลี่ยนแปลงเหล่านั้นได้รวมเข้ากับmasterสาขาแล้วฉันกำลังพยายามเปลี่ยนเว็บไซต์กลับไปที่masterสาขาด้วย ณ จุดนี้newbranchและorigin/masterเหมือนกัน แต่masterล้าหลังorigin/masterและจำเป็นต้องได้รับการอัปเดต ปัญหาคือถ้าฉันทำแบบดั้งเดิม: $ git checkout master # Uh oh, production website has now reverted back to old version in master $ git pull # Website is now up to date again ฉันต้องการบรรลุเช่นเดียวกับด้านบน ( git checkout master && git pull) …
126 git  branch  git-branch 

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