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

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

10
คำขอดึง GitHub แสดงคอมมิตที่อยู่ในสาขาเป้าหมายแล้ว
ฉันกำลังพยายามตรวจสอบคำขอดึง GitHub ไปยังสาขาที่ไม่ใช่สาขาหลัก สาขาเป้าหมายอยู่หลังมาสเตอร์และคำขอดึงแสดงการคอมมิตจากมาสเตอร์ดังนั้นฉันจึงรวมมาสเตอร์และพุชไปยัง GitHub แต่คอมมิตและความแตกต่างสำหรับพวกเขายังคงปรากฏในคำร้องขอดึงหลังจากรีเฟรช ฉันได้ตรวจสอบสองครั้งแล้วว่าสาขาบน GitHub มีการคอมมิตจากมาสเตอร์ เหตุใดจึงยังคงปรากฏในคำขอดึง ฉันได้ตรวจสอบคำขอดึงในเครื่องแล้วและแสดงเฉพาะการคอมมิตที่ไม่ได้ผสานเท่านั้น

5
Visual Studio 2013 และ BitBucket
Visual Studio 2013 เห็นได้ชัดว่ามีการผสานรวม Git ที่สวยงาม อย่างไรก็ตามหลังจากหนึ่งชั่วโมงของการเกาหัวโดยไม่มีอะไรที่ทำให้รู้สึกได้เลยแม้แต่น้อยฉันสามารถสร้างที่เก็บในเครื่องได้เท่านั้นและถึงแม้จะโคลนที่เก็บบิตบัคเก็ตระยะไกลฉันก็ไม่สามารถหาวิธีเผยแพร่ไปยังที่เก็บระยะไกลของฉันได้ . ฉันเคยใช้ TFS, Subversion, Perforce และอื่น ๆ อีกมากมาย แต่สิ่งนี้ทำให้งงงันโดยไม่มีคำแนะนำและอินเทอร์เฟซผู้ใช้ที่ไม่ใช้งานง่าย ใครมีความคิด?

7
ทำ schema.rb ของฉันหาย! สามารถสร้างใหม่ได้หรือไม่?
เนื่องจากปัญหาการปรับใช้บางอย่างฉันจึงหยุดติดตาม schema.rb ใน git อย่างไรก็ตามฉันได้ยัดมันขึ้นมาและบางแห่งระหว่างทางไฟล์ schema.rb ของฉันหายไป มีวิธีสร้าง schema.rb จากฐานข้อมูลหรือจากการโอนย้ายหรือไม่ ฉันไม่ต้องการให้ข้อมูลที่มีอยู่สูญหาย

6
Git push branch จากรีโมตหนึ่งไปยังอีกอันหนึ่ง?
ฉันมีการตั้งค่ารีโมทต่อไปนี้: $ git remote korg rorg และสาขาต่อไปนี้: $ git branch -a * (no branch) remotes/korg/gingerbread remotes/korg/gingerbread-release remotes/korg/honeycomb remotes/korg/honeycomb-mr1-release remotes/korg/master remotes/m/android-2.3.3_r1 -> refs/tags/android-2.3.3_r1a remotes/m/gingerbread -> korg/gingerbread ตอนนี้ฉันต้องการที่จะผลักดันสาขาระยะไกลทั้งหมดจากkorgไปยังrorgรีโมท ฉันจะทำอย่างไร โดยเฉพาะอย่างยิ่งโดยไม่ต้องสร้างสาขาในท้องถิ่นสำหรับแต่ละแห่งก่อนหากสามารถหลีกเลี่ยงได้

4
จะสร้างสาขา "root" ใหม่ (และว่างเปล่า!) ได้อย่างไร
ฉันต้องการกำหนดสาขา "root" ใหม่ในที่เก็บ git นี้ โดย "ราก" สาขาที่ผมหมายถึงสาขาที่เป็นอิสระทั้งหมดของทุกสาขาอื่นในพื้นที่เก็บข้อมูล1 น่าเสียดายที่แม้แต่การกระทำ (ขอเรียกมันว่าA) ที่ฐานสุดของโครงสร้างคอมมิตของ repo นั้นมีไฟล์จำนวนมาก (นี่คือที่เก็บที่เริ่มต้นในโปรเจ็กต์ที่เป็นผู้ใหญ่แล้ว) ซึ่งหมายความว่าแม้ว่าฉันจะให้Aเป็นสาขาใหม่ แต่สาขาใหม่<start-point>นี้จะไม่เริ่มต้นจาก "กระดานชนวนที่สะอาด" แต่จะมีไฟล์ทั้งหมดที่ถูกส่งเข้าAมา มีวิธีใดบ้างที่ฉันสามารถสร้างสาขาที่ว่างเปล่าทั้งหมดในที่เก็บนี้โดย<start-point>ให้ใกล้เคียงAที่สุด 1 BTW ไม่เทียบเท่ากับการสร้าง repo ใหม่ repos แยกกันจะสะดวกน้อยลงด้วยเหตุผลหลายประการ แก้ไข : ตกลงนี่คือสิ่งที่ฉันทำตามคำตอบของvcsjones : # save rev of the current earliest commit OLDBASE=$(git rev-list --max-parents=0 HEAD) # create a new orphan branch and switch …
136 git 

3
คุณสามารถมี. gitignore เพิ่มเติมต่อไดเร็กทอรีภายใน repo เดียวได้หรือไม่?
คุณสามารถสร้างไฟล์. gitignore ในไดเร็กทอรีที่ใช้กับไฟล์ (และไดเร็กทอรี) ภายในไดเร็กทอรีนั้นได้หรือไม่?

2
วิธีดูแท็กระยะไกล?
ใน Atlassian SourceTree จะรู้ได้อย่างไรว่าแท็กใดเป็นเฉพาะในเครื่องและแท็กใดอยู่ในระยะไกลด้วย เมื่อสร้างแท็กคุณจะได้รับตัวเลือก "Push tag to: ... " แต่จะทราบได้อย่างไรว่ามีการส่งแท็กหรือไม่หลังจากสร้างแล้ว ฉันสามารถดูแท็กทั้งหมดของฉันได้ในเครื่อง แต่ฉันต้องแน่ใจว่าแท็กเหล่านี้อยู่ในระยะไกลเพื่อให้นักพัฒนารายอื่นสามารถดึงแท็กเหล่านั้นได้

11
การใช้งาน git reset - soft?
ฉันทำงานกับคอมไพล์มาแค่เดือนกว่า ๆ อันที่จริงฉันใช้การรีเซ็ตเป็นครั้งแรกเมื่อวานนี้เท่านั้น แต่ซอฟต์รีเซ็ตยังไม่สมเหตุสมผลสำหรับฉัน git commit --amendฉันเข้าใจว่าฉันสามารถใช้ซอฟต์รีเซ็ตเพื่อแก้ไขกระทำโดยไม่ต้องเปลี่ยนดัชนีหรือไดเรกทอรีการทำงานที่ผมจะมี คำสั่งทั้งสองนี้เหมือนกันจริงหรือไม่( reset --softvs commit --amend)? เหตุผลใดที่จะใช้อย่างใดอย่างหนึ่งในทางปฏิบัติ? และที่สำคัญมีการใช้งานอื่น ๆreset --softนอกเหนือจากการแก้ไขข้อตกลงหรือไม่?
136 git 

11
ลบสาขาใน Bitbucket
ฉันได้สร้างสาขามากมายในที่เก็บของเรา สาขาเหล่านั้นมีไว้สำหรับการทดสอบก่อนที่จะถูกดึงไปยังต้นแบบ ตอนนี้ฉันเห็นมันมากมายในรายการและพวกเขาจะไม่ใช้มันอีก จะลบสาขาเหล่านั้นไปยัง Bitbucket โดยตรงได้อย่างไร?

10
วิธีการเลือกเชอร์รี่จากสาขาระยะไกล?
ฉันมีปัญหากับการเลือกเชอร์รี่ ในเครื่องของฉันฉันอยู่ในสาขา "master" ของฉัน ฉันต้องการเชอร์รี่ที่เลือกจากสาขาอื่นที่ชื่อว่า "ม้าลาย" สาขา "ม้าลาย" เป็นสาขาระยะไกล ดังนั้นสถานะคอมไพล์: # On branch master nothing to commit (working directory clean) ตกลงตอนนี้ฉันพยายามที่จะเลือกความมุ่งมั่นของเชอร์รี่: git cherry-pick xyz fatal: bad object xyz ที่ "xyz" เป็นลายเซ็นของความมุ่งมั่นที่ฉันสนใจซึ่งเกิดขึ้นในสาขา "ม้าลาย" ดังนั้นคำถามแรกที่ชัดเจนคือทำไมไม่สามารถหาคำมั่นสัญญาที่ฉันอ้างอิงได้ ฉันไม่เข้าใจจริงๆว่าวิธีนี้ทำงานในสถานที่แรกที่จะซื่อสัตย์ คอมไพล์เก็บบางสิ่งเช่นฐานข้อมูลของคอมมิทไว้ในไดเร็คทอรี่สำหรับทำงานของสาขาอื่นหรือไม่? เมื่อรันคำสั่ง cherry-pick มันจะไปและค้นหาฐานข้อมูลท้องถิ่นเพื่อค้นหาคำสั่งที่ฉันกำลังพูดถึงหรือไม่? เนื่องจาก "zebra" เป็นสาขาระยะไกลฉันจึงคิดว่าฉันไม่มีข้อมูลในเครื่อง ดังนั้นฉันจึงเปลี่ยนสาขา: git checkout zebra Switched to branch 'zebra' ดังนั้นตอนนี้ที่นี่ในเครื่องท้องถิ่นของฉันฉันเห็นได้ว่าไฟล์ในไดเรกทอรีแสดงสถานะของม้าลายอย่างถูกต้อง …
135 git 

4
gitignore ไม่สนใจโฟลเดอร์
ในรากของโครงการของฉันฉันมีfooโฟลเดอร์ ข้างในfooโฟลเดอร์ฉันมีbarโฟลเดอร์ ฉันต้องการเพิกเฉยต่อการเปลี่ยนแปลงทั้งหมดของไฟล์ทั้งหมดในbarโฟลเดอร์ของฉัน ฉันมีสิ่งนี้ในgitignore: /foo/bar มีการตรวจสอบโฟลเดอร์: มีอยู่และมีไฟล์ที่จะถูกละเว้น gitignoreถูกเทcommitด อย่างไรก็ตามฉันมีไฟล์ที่สร้างการเปลี่ยนแปลงและอยู่ในbarโฟลเดอร์ของฉัน เมื่อฉันพิมพ์ git status ข้างในgit bashฉันเห็นไฟล์ที่ควรถูกเพิกเฉย อาจมีสาเหตุอะไรบ้างและฉันจะเพิกเฉยต่อไฟล์ทั้งหมดในโฟลเดอร์บาร์ได้อย่างไร? โปรดทราบว่าก่อนหน้านี้ไฟล์ถูกละเว้นด้วยบรรทัดเดียวกัน แต่ฉันต้องลบบรรทัดนั้นไปยังcommitบางสิ่งบนเซิร์ฟเวอร์ชั่วคราว หลังจากที่ผมใส่สายกลับเข้าไปในcommit gitignoreนี่เป็นเมื่อไม่นานมานี้ แต่ตอนนี้ฉันได้สังเกตุว่าไฟล์จะอยู่ในgit statusนั้น git statusผมจะคาดหวังที่จะสามารถแก้ไขไฟล์ละเว้นโดยไม่ต้องพวกเขาที่ปรากฏใน
135 git  gitignore 

6
git-svn dcommit หลังจากรวมเข้ากับ git เป็นอันตรายหรือไม่?
แรงจูงใจของฉันในการลองใช้ git-svn คือการผสานและการแตกแขนงได้อย่างง่ายดาย จากนั้นฉันสังเกตเห็นว่า man git-svn (1) พูดว่า: ไม่แนะนำให้ใช้ git-merge หรือ git-pull ในสาขาที่คุณวางแผนจะ dcommit การโค่นล้มไม่ได้แสดงถึงการรวมเข้าด้วยกันในรูปแบบที่สมเหตุสมผลหรือเป็นประโยชน์ ดังนั้นผู้ใช้ที่ใช้ Subversion จะไม่เห็นการผสานใด ๆ ที่คุณทำ นอกจากนี้หากคุณรวมหรือดึงจาก git branch ที่เป็นมิเรอร์ของสาขา SVN dcommit อาจส่งไปยังสาขาที่ไม่ถูกต้อง หมายความว่าฉันไม่สามารถสร้างสาขาในพื้นที่จาก svn / trunk (หรือสาขา) แฮ็คออกไปรวมกลับเป็น svn / trunk แล้ว dcommit หรือไม่ ฉันเข้าใจว่าผู้ใช้ svn จะเห็นความยุ่งเหยิงแบบเดียวกับที่รวมใน svn ก่อน 1.5.x มาโดยตลอด แต่มีข้อเสียอื่น ๆ หรือไม่? ประโยคสุดท้ายนั้นทำให้ฉันกังวลเช่นกัน …
135 svn  git  merge  branch  git-svn 

5
จะเปลี่ยนกลับไปใช้ 'master' ด้วย git ได้อย่างไร?
ฉันได้ทำการกระทำครั้งแรกของฉัน จากนั้นสร้างสาขา (สมมติว่า branch1) ในสาขานี้ฉันได้สร้างไดเร็กทอรี 'ตัวอย่าง' และยอมรับ ใน GitHub ฉันเห็นสาขาใหม่ของฉันและ 'ตัวอย่าง' ไดเรกทอรีใหม่ที่ฉันได้เพิ่มเข้าไป ตอนนี้ฉันสงสัยว่าฉันจะ 'ซิงค์' กลับไปเป็นมาสเตอร์ได้อย่างไร ดังนั้นให้ลบโฟลเดอร์ 'ตัวอย่าง' (เนื่องจากไม่มีอยู่ในต้นแบบ) แก้ไข: find . -type d -empty -exec touch {}/.gitignore \; ได้งาน
135 git 

30
การขออนุญาตถูกปฏิเสธ (คีย์สาธารณะ) บน gitlab
ปัญหาของฉันคือฉันไม่สามารถพุชหรือดึงข้อมูลจาก GitLab อย่างไรก็ตามฉันสามารถโคลน (ผ่าน HTTP หรือผ่าน SSH) ฉันได้รับข้อผิดพลาดนี้เมื่อพยายามผลักดัน: การอนุญาตถูกปฏิเสธ (คีย์สาธารณะ) ร้ายแรง: ไม่สามารถอ่านจากที่เก็บระยะไกล จากหัวข้อทั้งหมดที่ฉันดูนี่คือสิ่งที่ฉันได้ทำ: ตั้งค่าคีย์ SSH บนคอมพิวเตอร์ของฉันและเพิ่มคีย์สาธารณะลงใน GitLab ทำการกำหนดค่า --global สำหรับชื่อผู้ใช้และอีเมล โคลนผ่าน SSH และผ่าน HTTP เพื่อตรวจสอบว่าจะแก้ปัญหาได้หรือไม่ ทำคำสั่ง ssh -T git@gitlab.com หากคุณมีข้อมูลเชิงลึกเกี่ยวกับวิธีการแก้ไขปัญหาของฉันขอขอบคุณเป็นอย่างยิ่ง
135 git  ubuntu  ssh  gitlab 

17
ฉันจะบันทึกคีย์ลับและรหัสผ่านอย่างปลอดภัยในระบบควบคุมเวอร์ชันของฉันได้อย่างไร
ฉันเก็บการตั้งค่าที่สำคัญเช่นชื่อโฮสต์และพอร์ตของเซิร์ฟเวอร์การพัฒนาและการใช้งานจริงในระบบควบคุมเวอร์ชันของฉัน แต่ฉันรู้ว่ามันเป็นทางปฏิบัติที่ไม่ดีที่จะให้ความลับ (เช่นคีย์ส่วนตัวและรหัสผ่านฐานข้อมูล) ในที่เก็บ VCS นั้นไม่ดี แต่ดูเหมือนว่ารหัสผ่านจะเหมือนกับการตั้งค่าอื่น ๆ แล้วไงเป็นวิธีการที่เหมาะสมในการเก็บรหัสผ่านควบคุมรุ่น? ฉันคิดว่ามันจะเกี่ยวข้องกับการเก็บความลับไว้ในไฟล์ "การตั้งค่าความลับ" ของตัวเองและมีสิ่งนั้นเข้ารหัสไฟล์และควบคุมรุ่น แต่เทคโนโลยีอะไร? และทำอย่างไรจึงจะเหมาะสม? มีวิธีที่ดีกว่าในการดำเนินการทั้งหมดหรือไม่? ฉันถามคำถามโดยทั่วไป แต่ในกรณีเฉพาะของฉันฉันต้องการเก็บคีย์ลับและรหัสผ่านสำหรับไซต์Django / Pythonโดยใช้gitและgithub GitHub นอกจากนี้ทางออกที่ดีจะทำสิ่งที่น่าอัศจรรย์เมื่อฉันกด / ดึงด้วยคอมไพล์เช่นหากไฟล์รหัสผ่านที่เข้ารหัสเปลี่ยนสคริปต์จะถูกเรียกใช้ซึ่งขอรหัสผ่านและถอดรหัสให้เข้าที่ แก้ไข: เพื่อความชัดเจนฉันกำลังถามเกี่ยวกับสถานที่เก็บความลับในการผลิต

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