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

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

8
ฉันจะลบตัวเลือกเมนูคลิกขวาของ msysgit ได้อย่างไร
นี่ไม่ใช่คำถามการเขียนโปรแกรมที่ดีที่สุด แต่ให้หน้ามันความผิดของเซิร์ฟเวอร์ไม่รอบรู้ใน git ดังนั้นฉันคิดว่ามันมีต่อผู้ชมนี้ ฉันต้องการเปลี่ยนเป็น TortoiseGit หรือ PortableGit ในเชลล์ของฉัน แต่ฉันทิ้งไว้กับตัวเลือกเมนูบริบทที่น่ารำคาญเหล่านี้ ฉันจะทำให้พวกเขาหายไปได้อย่างไร ฉันต้องเขียนสคริปต์เพื่อถอนการติดตั้งหรือไม่
346 git  tortoisegit  msysgit 

9
ทำไมฉันถึงต้องใส่ใจกับแท็กที่มีน้ำหนักเบาและมีคำอธิบายประกอบ
ฉันเปลี่ยนจากการโค่นล้มเป็น Git เป็น VCS ประจำวันของฉันเมื่อปีที่แล้วและฉันยังคงพยายามที่จะเข้าใจจุดที่ดีกว่าของ "Git-think" สิ่งหนึ่งที่ทำให้ฉันรำคาญเมื่อเร็ว ๆ นี้คือแท็ก "จริงจัง" และคำอธิบายประกอบที่ลงนามแล้ว ดูเหมือนว่าสวยได้รับการยอมรับในระดับสากลว่าแท็กข้อเขียนจะดีกว่าแท็กที่มีน้ำหนักเบาสำหรับการใช้งานจริงทั้งหมด แต่คำอธิบายที่ฉันได้พบว่าทำไมเป็นกรณีที่เสมอดูเหมือนจะต้มลงไปอย่างใดอย่างหนึ่ง"เพราะปฏิบัติที่ดีที่สุด"หรือ"เพราะพวกเขากำลังที่แตกต่างกัน" . น่าเสียดายที่ข้อโต้แย้งเหล่านี้ไม่เป็นที่พอใจอย่างมากโดยไม่ทราบว่าเพราะเหตุใดจึงเป็นแนวทางปฏิบัติที่ดีที่สุดหรือความแตกต่างเหล่านั้นเกี่ยวข้องกับการใช้ Git ของฉันอย่างไร เมื่อฉันเปลี่ยนมาใช้ Git เป็นครั้งแรกแท็กที่มีน้ำหนักเบาดูเหมือนจะเป็นสิ่งที่ดีที่สุดตั้งแต่หั่นขนมปัง ฉันสามารถชี้ไปที่คำสั่งแล้วพูดว่า "นั่นคือ 1.0" ฉันมีปัญหาในการเข้าใจว่าแท็กจะต้องเป็นมากกว่านั้นได้อย่างไร แต่ฉันไม่อยากจะเชื่อเลยว่าผู้เชี่ยวชาญของ Git ในโลกนี้ชอบแท็กที่มีคำอธิบายประกอบโดยพลการ! แล้วเสียงขรมทั้งหมดเกี่ยวกับอะไร (คะแนนโบนัส: เพราะเหตุใดฉันจึงต้องลงชื่อแท็ก) แก้ไข ฉันเชื่อมั่นว่าแท็กที่มีคำอธิบายประกอบเป็นสิ่งที่ดี - รู้ว่าใครแท็กและเมื่อใดที่สำคัญ! ในการติดตามคำแนะนำใด ๆ เกี่ยวกับคำอธิบายประกอบแท็กที่ดี? ทั้งสองgit tag -am "tagging 1.0" 1.0และพยายามสรุปบันทึกการกระทำเนื่องจากแท็กก่อนหน้านี้รู้สึกเหมือนสูญเสียกลยุทธ์
346 git  git-tag 

16
ไฟล์แผนผังการทำงานที่ไม่ได้ติดตามจะถูกเขียนทับโดยการรวม แต่ฉันไม่สนใจ
ที่สาขาของฉันฉันมีไฟล์บางไฟล์ใน. gitignore ในสาขาอื่นไฟล์เหล่านั้นไม่ใช่ ฉันต้องการที่จะรวมสาขาที่แตกต่างกันเข้ากับของฉันและฉันไม่สนใจว่าไฟล์เหล่านั้นจะถูกละเว้นหรือไม่ น่าเสียดายที่ฉันได้รับสิ่งนี้: ไฟล์แผนผังการทำงานที่ไม่ได้ติดตามจะถูกเขียนทับโดยการรวม ฉันจะแก้ไขคำสั่ง pull เพื่อเขียนทับไฟล์เหล่านั้นได้อย่างไรโดยไม่ต้องค้นหาย้ายหรือลบไฟล์เหล่านั้นด้วยตนเอง

8
เพิ่มการเปลี่ยนแปลงที่ไม่ใช่ช่องว่างเท่านั้น
ฉันมีโปรแกรมแก้ไขข้อความเพื่อตัดช่องว่างต่อท้ายโดยอัตโนมัติเมื่อบันทึกไฟล์และฉันมีส่วนร่วมในโครงการโอเพ่นซอร์สที่มีปัญหาร้ายแรงกับช่องว่างต่อท้าย ทุกครั้งที่ฉันพยายามส่งแพตช์ฉันต้องเพิกเฉยต่อการเปลี่ยนแปลงทั้งหมดของช่องว่างด้วยตนเองก่อนเพื่อเลือกเฉพาะข้อมูลที่เกี่ยวข้อง ไม่เพียงแค่นั้น แต่เมื่อฉันวิ่งgit rebaseฉันมักจะพบปัญหาหลายอย่างเพราะพวกเขา เช่นนี้ฉันต้องการเพิ่มดัชนีเฉพาะการเปลี่ยนแปลงที่ไม่ใช่ช่องว่างในลักษณะที่คล้ายกันgit add -pแต่ไม่ต้องเลือกการเปลี่ยนแปลงทั้งหมดด้วยตนเอง ไม่มีใครรู้วิธีการทำเช่นนี้? แก้ไข: ฉันไม่สามารถเปลี่ยนวิธีการทำงานของโครงการและพวกเขาได้ตัดสินใจหลังจากคุยเรื่องนี้ในรายชื่อผู้รับจดหมายเพื่อเพิกเฉยต่อสิ่งนี้
343 git  whitespace 

30
git rebase:“ ข้อผิดพลาด: ไม่สามารถสถิติ 'ไฟล์': การอนุญาตถูกปฏิเสธ”
ฉันใช้คอมไพล์และทำคอมมิทเล็กน้อยตามด้วยคอมมิชชันขนาดใหญ่ ฉันตัดสินใจที่จะใช้git rebaseสควอชทั้งสองคอมมิชชันด้วยกันก่อนผลักมัน (ฉันไม่เคยทำแบบนี้มาก่อน) ดังนั้นฉันจึง: git rebase -i HEAD~2 สิ่งนี้ทำให้ฉันบรรณาธิการของฉันที่ฉันเลือกที่จะเลือกการกระทำก่อนหน้านี้และสควอชในภายหลัง เมื่อฉันบันทึก git กล่าวว่า: ข้อผิดพลาด: ไม่สามารถสถิติ ' ชื่อไฟล์ ': ปฏิเสธการอนุญาต ไม่สามารถใช้sha1 สำหรับการคอมมิชชันในภายหลัง ... บรรทัดข้อความเริ่มต้นสำหรับการคอมมิทนั้น ขณะนี้: git logไม่กระทำการปรากฏขึ้นเมื่อฉันทำ git status บอกฉันว่า "ไม่ได้อยู่ที่สาขาใดเลย" หนึ่งไฟล์ถูกแสดงรายการที่ถูกแก้ไขและในดัชนีและสองไฟล์ถูกแสดงว่าไม่ได้ติดตาม ความมุ่งมั่นครั้งแรกของฉันมีเพียงไฟล์เดียว (ฉันคิดว่า) และความมุ่งมั่นที่สองของฉันมีโหลที่ดี เกิดอะไรขึ้น!? ฉันจะแก้ไขได้อย่างไร
343 git  git-rebase 

14
Git Extensions: Win32 error 487: ไม่สามารถจองพื้นที่สำหรับฮีปของ cygwin, Win32 error 0
ส่วนขยาย Git:ทุกอย่างทำงานได้ดีจนกระทั่งเมื่อวาน แต่ทันใดนั้นฉันก็พบข้อผิดพลาดนี้เมื่อฉันพยายามดึงที่เก็บบางอันใช้ git extensions C:\Program Files\Git\bin\git.exe pull --progress "origin" Done 0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487 AllocationBase 0x0, BaseAddress 0x68560000, RegionSize 0x390000, State 0x10000 C:\Program Files\Git\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0 มันเกิดขึ้นสำหรับที่เก็บทั้งหมดที่ฉันได้โคลน แต่ทุบตีคอมไพล์ของฉันทำงานได้ดี ฉันไม่รู้ว่าเกิดอะไรขึ้น มีความคิดว่าทำไมสิ่งนี้จึงเกิดขึ้น?

14
ระบุคีย์ SSH สำหรับ git push สำหรับโดเมนที่กำหนด
ฉันมีกรณีการใช้งานดังต่อไปนี้: ฉันต้องการที่จะผลักดันให้git@git.company.com:gitolite-adminใช้คีย์ส่วนตัวของผู้ใช้gitolite-adminในขณะที่ฉันต้องการที่จะผลักดันให้git@git.company.com:some_repoใช้คีย์ส่วนตัว 'ของตัวเอง' AFAIK ฉันไม่สามารถแก้ปัญหานี้ได้~/.ssh/configเนื่องจากชื่อผู้ใช้และชื่อเซิร์ฟเวอร์เหมือนกันในทั้งสองกรณี ขณะที่ผมส่วนใหญ่ใช้คีย์ส่วนตัวของฉันเองฉันได้ที่กำหนดไว้ในสำหรับ~/.ssh/config git@git.company.comไม่มีใครรู้วิธีการแทนที่คีย์ที่ใช้สำหรับการgitเรียกใช้ครั้งเดียวหรือไม่? (นอกเหนือจาก: gitolite แยกความแตกต่างว่าใครกำลังใช้การพุชตามคีย์ดังนั้นจึงไม่มีปัญหาในแง่ของการเข้าถึงความเป็นเจ้าของและการตรวจสอบว่าสตริงผู้ใช้ @ เซิร์ฟเวอร์เหมือนกันสำหรับผู้ใช้ที่แตกต่างกัน)
342 git  ssh  gitolite 

3
จะทำอย่างไรกับสาขาหลังจากผสาน
ฉันมีสองสาขาและmaster branch1ฉันเพิ่งรวมbranch1เข้ากับmasterและฉันก็ทำกับสาขานั้น ฉันควรจะลบมันหรือปล่อยให้มันนั่งเฉยๆ การลบมันจะทำให้ข้อมูลสูญหายหรือไม่
342 git  merge  branch 

10
ฉันจะเห็นการกระทำที่แตกต่างระหว่างกิ่งในคอมไพล์ได้อย่างไร?
ฉันอยู่ที่ branch-X และเพิ่มความมุ่งมั่นอีกสองสามข้อไว้บนนั้น ฉันต้องการเห็นความแตกต่างทั้งหมดระหว่าง MASTER และสาขาที่ฉันอยู่ในแง่ของความมุ่งมั่น ฉันสามารถทำ git checkout master git log และจากนั้น git checkout branch-X git log และมองเห็นสิ่งเหล่านี้แตกต่างกันไป แต่ฉันหวังว่าจะง่ายกว่าและมีข้อผิดพลาดน้อยลง
341 git  logging  branch  git-log 

2
เวิร์กโฟลว์ Github ที่ต้องการสำหรับการปรับปรุงคำขอดึงหลังจากการตรวจสอบรหัส
ฉันได้ส่งการเปลี่ยนแปลงไปยังโครงการโอเพ่นซอร์สบน Github และได้รับความคิดเห็นการตรวจสอบโค้ดจากหนึ่งในสมาชิกหลักของทีม ฉันต้องการอัปเดตรหัสโดยคำนึงถึงความคิดเห็นการตรวจสอบและส่งอีกครั้ง เวิร์กโฟลว์ที่ดีที่สุดสำหรับการทำเช่นนี้คืออะไร? จากความรู้ที่ จำกัด ของฉันเกี่ยวกับ git / github ฉันสามารถทำสิ่งใดสิ่งหนึ่งต่อไปนี้: อัปเดตรหัสเป็นการคอมมิชชันใหม่และเพิ่มการคอมมิทเริ่มต้นและอัปเดตลงในคำขอดึงของฉัน ยังไงก็ตาม (??) ย้อนกลับการคอมมิชชันเก่าจากที่เก็บของฉันและสร้างการคอมมิทใหม่ที่มีทุกอย่างจากนั้นเพิ่มคำขอดึงสำหรับสิ่งนั้น? git commitมีคุณสมบัติที่แก้ไข แต่ฉันได้ยินมาว่าคุณไม่ควรใช้งานหลังจากที่คุณส่งการคอมมิทนอกพื้นที่เก็บข้อมูลในเครื่องของคุณ? ในกรณีนี้ฉันได้ทำการเปลี่ยนแปลงบนพีซีในพื้นที่ของฉันและผลักดันไปยังสาขา github ของโครงการ นี่จะใช้การ 'แก้ไข' ไหม อื่น ๆ อีก? ดูเหมือนว่าตัวเลือก 2/3 จะดีเพราะโครงการโอเพนซอร์ซจะมีเพียงหนึ่งคอมมิชชันในประวัติศาสตร์ของพวกเขาซึ่งจะใช้งานทุกอย่าง แต่ฉันไม่แน่ใจว่าจะทำอย่างไร หมายเหตุ: ฉันไม่รู้ว่าสิ่งนี้มีผลกระทบต่อคำตอบหรือไม่ แต่ฉันไม่ได้ทำการเปลี่ยนแปลงในสาขาที่แยกจากกันฉันเพิ่งทำคอมมิชชันด้านบนของต้นแบบ


9
Git: รายการเฉพาะไฟล์“ untracked” (เช่นเดียวกับคำสั่งที่กำหนดเอง)
มีวิธีใช้คำสั่งที่ต้องการgit ls-filesแสดงเฉพาะไฟล์ที่ไม่ได้ติดตามหรือไม่ เหตุผลที่ฉันถามเพราะฉันใช้คำสั่งต่อไปนี้เพื่อประมวลผลไฟล์ที่ถูกลบทั้งหมด: git ls-files -d | xargs git rm ฉันต้องการสิ่งที่คล้ายกันสำหรับไฟล์ที่ไม่ได้ติดตาม: git some-command --some-options | xargs git add ฉันสามารถค้นหา-oตัวเลือกได้git ls-filesแต่นี่ไม่ใช่สิ่งที่ฉันต้องการเพราะมันยังแสดงไฟล์ที่ถูกละเว้นด้วย ฉันยังสามารถสร้างคำสั่งที่ยาวและน่าเกลียดดังต่อไปนี้: git status --porcelain | grep '^??' | cut -c4- | xargs git add ดูเหมือนว่าจะต้องมีคำสั่งที่ดีกว่าที่ฉันสามารถใช้ได้ที่นี่ และถ้าไม่มีฉันจะสร้างคำสั่ง git ที่กำหนดเองได้อย่างไร

1
ชื่อสาขาที่ซับซ้อนของ Git นั้นยากต่อการใช้คำสั่ง Git ทั้งหมด
ฉันพยายามสร้างสาขาจากmasterคำสั่งต่อไปนี้ git branch SSLOC-201_Implement___str__()_of_ProductSearchQuery เมื่อ Git หยุดตอบสนองทันที ฉันสงสัยว่าคนที่ไม่หลบหนี()จะต้องถูกตำหนิ แต่อย่างใด ตอนนี้เมื่อใดก็ตามที่ฉันพยายามเรียกใช้คำสั่ง Git ฉันได้รับข้อผิดพลาดเดียวกัน: git:176: command not found: _of_ProductSearchQuery ด้วยจำนวนที่gitเพิ่มขึ้นทุกครั้งที่ฉันพิมพ์คำสั่ง ทุกคนสามารถอธิบายสิ่งที่เกิดขึ้นได้ไหม แล้วฉันจะกลับมาเป็นปกติได้อย่างไร? ฉันต้องการลบสาขานั้น แต่ฉันจะทำอย่างไร

5
Git: ไม่สามารถเลิกทำการเปลี่ยนแปลงในเครื่องได้ (ข้อผิดพลาด: เส้นทาง…ถูกเลิกรวมแล้ว)
ฉันได้ติดตามสถานะของต้นไม้ที่ใช้งานได้ $ git status foo/bar.txt # On branch master # Unmerged paths: # (use "git reset HEAD <file>..." to unstage) # (use "git add/rm <file>..." as appropriate to mark resolution) # # deleted by us: foo/bar.txt # no changes added to commit (use "git add" and/or "git commit -a") มีไฟล์foo/bar.txtอยู่และฉันต้องการให้มันเป็น …

11
สคริปต์ Git hook สามารถจัดการพร้อมกับที่เก็บได้หรือไม่?
เราต้องการสร้างสคริปต์เบ็ดพื้นฐานบางอย่างที่เราทุกคนสามารถแบ่งปันได้ - สำหรับสิ่งต่าง ๆ เช่นการจัดรูปแบบการส่งข้อความล่วงหน้า Git <project>/.git/hooks/มีสคริปต์เบ็ดสำหรับที่จะถูกเก็บไว้ตามปกติ อย่างไรก็ตามสคริปต์เหล่านั้นจะไม่ถูกเผยแพร่เมื่อผู้ใช้ทำการโคลนและไม่ได้ควบคุมเวอร์ชัน มีวิธีที่ดีที่จะช่วยให้ทุกคนได้รับสคริปต์ที่ถูกต้องหรือไม่ ฉันสามารถทำให้เบ็ดสคริปต์เหล่านั้นชี้ไปที่สคริปต์ควบคุมเวอร์ชันใน repo ของฉันได้หรือไม่
337 git  githooks 

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