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

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

11
Stashing เฉพาะการเปลี่ยนแปลงที่ไม่มีการจัดฉากใน Git
ฉันต้องการทำกระบวนการทำงานต่อไปนี้: เพิ่มการเปลี่ยนแปลงไปยังเวที สะสมการเปลี่ยนแปลงอื่น ๆ ทั้งหมดที่ไม่ได้จัดฉากไว้ ทำบางสิ่งบางอย่างกับสิ่งต่าง ๆ บนเวที (เช่นการสร้างรันการทดสอบ ฯลฯ ) ใช้ที่เก็บ มีวิธีการทำขั้นตอนที่ 2 หรือไม่? ตัวอย่าง echo "123" > foo git add foo # Assumes this is a git directory echo "456" >> foo git stash cat foo # Should yield 123
229 git  git-stash 

11
การเปลี่ยนค่าเริ่มต้น 'push' เป็น Git จากระยะไกล
ฉันต้องการเปลี่ยนปลายทางสาขาระยะไกลเริ่มต้นของ Git เพื่อให้ฉันทำได้ git push แทน: git push upstream ขณะนี้มีการตั้งค่าเป็นรีโมทแบบรีโมทและฉันต้องการตั้งค่าเป็นรีโมตอื่น ฉันพยายามลบรีโมตดั้งเดิม (โคลนจาก) git remote rm origin ซึ่งลบรีโมตดั้งเดิมออก แต่ไม่ได้แก้git pushปัญหา ฉันยังรับ: ร้ายแรง: ไม่มีปลายทางการกำหนดค่าการพุช ระบุ URL จาก บรรทัดคำสั่งหรือกำหนดค่าที่เก็บระยะไกลโดยใช้ ... ฉันพยายามเล่นด้วย: git remote set-url --push myfork origin และตัวเลือกอื่น ๆ แต่ดูเหมือนไม่มีใครทำงาน (อาจเป็นเพราะฉันลบรีโมทต้นทางเร็วเกินไป?) ทำตามคำตอบที่นี่ฉันพยายามเปลี่ยน: git config push.default upstream (or matching) แต่ก็ไม่ได้ผล
228 git  git-push  git-remote 

6
จะแสดงประวัติบันทึก git สำหรับไดเรกทอรีย่อยของ git repo ได้อย่างไร?
Наэтотвопросестьответына กองมากเกินнарусском : Получитьсписоккоммитовдляопределённойпапки ให้บอกว่าฉันมี repo คอมไพล์ที่มีลักษณะเช่นนี้ foo/ .git/ A/ ... big tree here B/ ... big tree here มีวิธีขอให้บันทึก git เพื่อแสดงเฉพาะข้อความบันทึกสำหรับไดเรกทอรีเฉพาะ ตัวอย่างเช่นฉันต้องการดูไฟล์คอมมิทที่ยอมรับใน foo / A เท่านั้น?
228 git 

13
ฉันจะหาที่ตั้งต้นกำเนิด / หลักในคอมไพล์ได้อย่างไรและฉันจะเปลี่ยนได้อย่างไร
ฉันเป็นมือใหม่ Git ฉันเพิ่งย้ายโครงการ Rails จากการโค่นล้มไป Git ฉันติดตามการสอนที่นี่: http://www.simplisticcomplexity.com/2008/03/05/cleanly-migrate-your-subversion-repository-to-a-git-repository/ ฉันใช้ unfuddle.com เพื่อจัดเก็บรหัสของฉันด้วย ฉันทำการเปลี่ยนแปลงบนแล็ปท็อป Mac ของฉันบนรถไฟไป / กลับจากที่ทำงานและจากนั้นผลักพวกเขาให้เปิดออกเมื่อฉันมีการเชื่อมต่อเครือข่ายโดยใช้คำสั่งต่อไปนี้: git push unfuddle master ฉันใช้ Capistrano สำหรับการปรับใช้และดึงรหัสจากที่เก็บ unuddle โดยใช้สาขาหลัก เมื่อเร็ว ๆ นี้ฉันสังเกตเห็นข้อความต่อไปนี้เมื่อฉันเรียกใช้ "สถานะ git" บนแล็ปท็อปของฉัน: # On branch master # Your branch is ahead of 'origin/master' by 11 commits. # nothing to commit (working …
227 git  git-push  git-remote 

9
Git diff บอกว่าโครงการย่อยสกปรก
ฉันเพิ่งจะเรียกใช้คอมไพล์และฉันได้รับผลลัพธ์ต่อไปนี้สำหรับทั้งหมด 10 submodules ของฉัน diff --git a/.vim/bundle/bufexplorer b/.vim/bundle/bufexplorer --- a/.vim/bundle/bufexplorer +++ b/.vim/bundle/bufexplorer @@ -1 +1 @@ -Subproject commit 8c75e65b647238febd0257658b150f717a136359 +Subproject commit 8c75e65b647238febd0257658b150f717a136359-dirty สิ่งนี้หมายความว่า? ฉันจะแก้ไขได้อย่างไร

6
ไม่สนใจเนื้อหาของไดเรกทอรีที่เช็คอินแล้วใช่ไหม
ฉันมีที่เก็บ git ที่ใช้เพื่อเก็บกราฟิกและไฟล์เสียงที่ใช้ในหลายโครงการ พวกเขาทั้งหมดในหนึ่งไดเรกทอรีโดยไม่ต้องไดเรกทอรีย่อย ตอนนี้ฉันเพิ่งสร้างสคริปต์เพื่อคัดลอกสินทรัพย์เหล่านี้จากไดเรกทอรีโครงสร้างที่มีไดเรกทอรีย่อยหลายระดับ ตอนนี้ฉันแค่ต้องการให้โครงสร้างไฟล์แบบลำดับขั้น (แหล่งที่มา) ถูกติดตามโดย git และไดเรกทอรีแบบแบน (เป้าหมาย) (ที่มีไฟล์ทั้งหมดในกองเดียว) ควรถูกละเว้น ฉันได้เพิ่มไดเรกทอรีเป้าหมายใน. gitignore แต่ git ยังคงติดตามการเปลี่ยนแปลงในนั้น ฉันคิดว่าถ้าฉันยืนยันการลบไฟล์เก่าในไดเรกทอรีเป้าหมาย git อาจหยุดการติดตามเนื้อหาใหม่ (คัดลอกโดยสคริปต์) แต่ก็ไม่ได้ ฉันจะทำให้คอมไพล์ลืมไดเรกทอรีเป้าหมายได้อย่างไร

3
รับวันที่สร้างของที่เก็บ
มีวิธีบอกเมื่อสร้างที่ซ่อนหรือไม่? git stash listแสดงรายการ stashes เท่านั้นและgit stash show XXXXXXแสดงไฟล์และการเปลี่ยนแปลงทั้งหมด แต่ไม่ใช่วันที่สร้าง stash
227 git  git-stash 

3
จะแสดงรายการแท็กทั้งหมดที่มีการคอมมิตได้อย่างไร
คำถามนี้คล้ายกับวิธีแสดงรายการแท็กทั้งหมดที่ชี้ไปยังการคอมมิทเฉพาะในคอมไพล์แต่มีความแตกต่าง: ฉันต้องการค้นหาแท็กทั้งหมดที่มีการคอมมิทเฉพาะภายในทรีของแต่ละแท็กไม่ใช่เฉพาะไฟล์ที่ทำเครื่องหมายในแท็ก ตัวเอง (ในกรณีนี้เฉพาะการเปลี่ยนแปลง Makefile เท่านั้นที่ถูกแท็ก)
227 git 

17
ไฟล์ที่แสดงว่าถูกแก้ไขโดยตรงหลังจากโคลน Git
ฉันมีปัญหากับที่เก็บในขณะนี้และถึงแม้ว่า Git-fu ของฉันจะดี แต่ฉันไม่สามารถแก้ปัญหานี้ได้ เมื่อฉันโคลนที่เก็บนี้จากนั้นcdลงในที่เก็บgit statusจะแสดงหลาย ๆ ไฟล์ตามที่มีการเปลี่ยนแปลง หมายเหตุ: ฉันไม่ได้เปิดที่เก็บในโปรแกรมแก้ไขหรืออะไร ฉันลองทำตามคำแนะนำนี้: http://help.github.com/dealing-with-lineendings/แต่สิ่งนี้ไม่ได้ช่วยแก้ไขปัญหาของฉันเลย ฉันลองมาgit checkout -- .หลายครั้งแล้ว แต่ดูเหมือนจะไม่ทำอะไรเลย ฉันใช้ Mac และไม่มี submodules ในที่เก็บ ระบบไฟล์คือระบบไฟล์ "Journaled HFS +" บน Mac และไม่คำนึงถึงขนาดตัวพิมพ์ ไฟล์เป็นหนึ่งบรรทัดและประมาณ 79 KB ต่อไฟล์ (ใช่คุณได้ยินถูกต้อง) ดังนั้นการดูที่git diffไม่มีประโยชน์เป็นพิเศษ ฉันเคยได้ยินเกี่ยวกับการทำgit config --global core.trustctime falseสิ่งที่อาจช่วยได้ซึ่งฉันจะลองเมื่อฉันกลับไปที่คอมพิวเตอร์โดยใช้ที่เก็บข้อมูล ฉันเปลี่ยนรายละเอียดของระบบไฟล์ด้วยข้อเท็จจริง! และฉันลองใช้git config --global core.trustctime falseเคล็ดลับที่ไม่ได้ผลดีมาก
227 git  git-clone 


21
ร้ายแรง: ต้นแบบของสาขาปัจจุบันไม่มีสาขาต้นน้ำ
ฉันพยายามผลักดันโครงการใดโครงการหนึ่งของฉันไปที่ gitub และฉันได้รับข้อผิดพลาดนี้: peeplesoft@jane3:~/846156 (master) $ git push fatal: The current branch master has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin master ดังนั้นฉันจึงลองและได้รับสิ่งนี้: peeplesoft@jane3:~/846156 (master) $ git push --set-upstream origin master fatal: Authentication failed เธรด stackoverflow อื่นแนะนำให้ฉันลองทำสิ่งต่อไปนี้พร้อมกับผลลัพธ์ที่น่าผิดหวัง peeplesoft@jane3:~/846156 …
227 git  github 

8
เพราะเหตุใดสถานะ Git จึงแสดงว่าสาขามีความทันสมัยเมื่อมีการเปลี่ยนแปลงที่ต้นน้ำ
การเปลี่ยนแปลงมีอยู่ในสตรีมในสาขาที่ถูกติดตาม แต่เมื่อฉันพิมพ์git statusมันบ่งชี้ว่าสาขาในท้องถิ่นของฉันทันสมัย นี่เป็นพฤติกรรมใหม่ฉันเปลี่ยนการตั้งค่าหรือเป็นสิ่งที่ผิดหรือเปล่า ขอบคุณสำหรับความช่วยเหลือ ubuntu@host:/my/repo# git status On branch master Your branch is up-to-date with 'origin/master'. nothing to commit, working directory clean ubuntu@host:/my/repo# git pull remote: Counting objects: 11, done. remote: Compressing objects: 100% (11/11), done. remote: Total 11 (delta 6), reused 0 (delta 0) Unpacking objects: 100% (11/11), …
226 git 

8
รวมสองที่เก็บ Git โดยไม่ทำลายประวัติไฟล์
ฉันต้องรวมที่เก็บ Git สองอันเข้ากับที่เก็บใหม่และที่สาม ฉันพบคำอธิบายมากมายเกี่ยวกับวิธีการทำเช่นนี้โดยใช้ทรีย่อย (ตัวอย่างเช่นคำตอบของ Jakub Narębskiเกี่ยวกับคุณผสานที่เก็บ Git สองอันได้อย่างไร ) และทำตามคำแนะนำเหล่านั้นส่วนใหญ่ทำงานยกเว้นว่าเมื่อฉันคอมทรีทรีผสานไฟล์ทั้งหมด จากที่เก็บเก่าจะถูกบันทึกเป็นไฟล์ที่เพิ่มใหม่ ฉันสามารถดูประวัติการส่งมอบจากที่เก็บข้อมูลเก่าเมื่อฉันทำgit logแต่ถ้าฉันทำgit log <file>มันจะแสดงการกระทำเพียงครั้งเดียวสำหรับไฟล์นั้น - การรวมทรีย่อย ตัดสินจากความเห็นในคำตอบข้างต้นฉันไม่ได้อยู่คนเดียวในการเห็นปัญหานี้ แต่ฉันไม่พบวิธีแก้ไขปัญหาที่เผยแพร่ มีวิธีใดบ้างที่จะรวมที่เก็บข้อมูลและปล่อยประวัติไฟล์แต่ละไฟล์ไว้เหมือนเดิม?
226 git  git-subtree 

8
ฉันจะทราบได้อย่างไรว่าโปรแกรมมีการเปลี่ยนแปลงที่ปราศจากข้อผูกมัดทางโปรแกรมหรือไม่
ใน Makefile ฉันต้องการดำเนินการบางอย่างหากมีการเปลี่ยนแปลงที่ไม่มีข้อผูกมัด (ในแผนผังการทำงานหรือดัชนี) อะไรคือวิธีที่สะอาดและมีประสิทธิภาพที่สุดในการทำเช่นนั้น? คำสั่งที่ออกโดยมีค่าส่งคืนเป็นศูนย์ในหนึ่งกรณีและไม่เป็นศูนย์ในอื่น ๆ จะเหมาะกับวัตถุประสงค์ของฉัน ฉันสามารถรันgit statusและไพพ์เอาต์พุตผ่านgrepได้ แต่ฉันรู้สึกว่าต้องมีวิธีที่ดีกว่า
226 git 

21
Git: ข้อผิดพลาด“ โปรดบอกฉันว่าคุณเป็นใคร”
ฉันมีเซิร์ฟเวอร์แอปที่ฉันบู๊ตร่วมกันโดยใช้ Chef + สคริปต์เฉพาะกิจทุบตี ปัญหาคือเมื่อฉันต้องการเรียกใช้การอัปเดตบนหนึ่งในเซิร์ฟเวอร์แอปเหล่านี้ฉันได้รับ: 19:00:28: *** Please tell me who you are. Run git config --global user.email "you@example.com" git config --global user.name "Your Name" ฉันจำเป็นจริงๆที่จะตั้งค่านี้สำหรับการทำที่ง่ายgit pull origin masterทุกครั้งที่ผมปรับปรุงเซิร์ฟเวอร์แอป? อย่างไรก็ตามมีการแทนที่ลักษณะการทำงานนี้จึงไม่เกิดข้อผิดพลาดเมื่อไม่มีการตั้งชื่อและอีเมล
226 git 

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