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

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


6
ฉันจะบังคับให้ git ใช้ LF แทน CR + LF ใน windows ได้อย่างไร
ฉันต้องการที่จะบังคับให้คอมไพล์ไปยังไฟล์ที่เช็คเอาท์ภายใต้ Windows โดยใช้เพียงไม่LF CR+LFฉันตรวจสอบสองตัวเลือกการกำหนดค่า แต่ไม่พบการตั้งค่าที่ถูกต้อง ฉันต้องการแปลงไฟล์ทั้งหมดเป็นLFและเก็บไว้LFในไฟล์ หมายเหตุ: ฉันใช้autocrlf = inputแต่จะเป็นการซ่อมแซมไฟล์เมื่อคุณยืนยัน LFฉันต้องการที่จะบังคับให้พวกเขาได้รับใช้ ฉันอาจไม่ชัดเจนดังนั้น: พื้นที่เก็บข้อมูลที่มีอยู่แล้วโดยใช้LFแต่ไฟล์การตรวจสอบออกมาใช้ msysgit ใช้CR+LFและฉันต้องการที่จะบังคับให้ msysgit ที่จะได้รับพวกเขาด้วยLF: บังคับ Unix ปลายสาย >git config --list | grep crlf core.autocrlf=input
335 git  msysgit 

14
ไม่พบการแมป submodule ใน. gitmodule สำหรับเส้นทางที่ไม่ใช่ submodule
ฉันมีโครงการที่มี submodule ที่ lib/three20 .gitmoduleไฟล์ของฉันมีลักษณะเช่นนี้: [submodule "lib/three20"] path = lib/three20 url = git://github.com/facebook/three20.git ฉันได้โคลนสิ่งนี้ในอดีตโดยไม่มีข้อผิดพลาด ( git submodule initตามมาด้วยgit submodule update) และมันใช้งานได้ระยะหนึ่งแล้ว ฉันพยายามโคลนสิ่งนี้กับเครื่องใหม่และตอนนี้ฉันได้รับข้อผิดพลาดนี้ในgit submodule init: No submodule mapping found in .gitmodules for path 'Classes/Support/Three20' เส้นทางนั้นเป็นเพียงโฟลเดอร์ว่างใน Xcode ที่ฉันใช้เพื่อบ้านโครงการจากไดเรกทอรีอื่น มันไม่ได้เป็นส่วนหนึ่งของ.gitmodulesไฟล์ดังนั้นฉันไม่เห็นว่าเส้นทางมาจากที่ใด ความคิดใด ๆ


3
เลิกซ่อนคอมไพล์
ฉันเพิ่งทำโครงการที่ฉันไม่ได้ทำ มีวิธีที่จะกลับไปที่รัฐก่อนที่ฉันจะถูกซ่อน? ฉันจะทำสิ่งนี้ได้อย่างไร ฉันปิดเทอร์มินัลและแล็ปท็อปของฉันถูกปิด ฉันได้ทำการวิจัยแล้วและดูเหมือนว่าไม่มีวิธีการนี้
335 git 

7
ทำไม GitHub แนะนำ HTTPS มากกว่า SSH
บนเว็บไซต์ GitHub มีลิงค์ ... https://help.github.com/articles/generating-ssh-keys ... และมันระบุ ... หากคุณตัดสินใจที่จะไม่ใช้วิธี HTTPS ที่แนะนำเราสามารถใช้คีย์ SSH เพื่อสร้างการเชื่อมต่อที่ปลอดภัยระหว่างคอมพิวเตอร์ของคุณกับ GitHub ขั้นตอนด้านล่างจะนำคุณไปสู่การสร้างรหัส SSH แล้วเพิ่มรหัสสาธารณะในบัญชี GitHub ของคุณ ทำไม HTTPS จึงเป็นวิธีที่แนะนำ? มีข้อบกพร่องด้านความปลอดภัยบางประเภทในวิธีการ SSH หรือช้าลง? ฉันสร้างคีย์ SSH เพื่อที่จะลดความกังวลด้านความปลอดภัยหรือไม่
334 git  github  ssh  https 

4
“ u” ทำอะไรกันแน่ “ git push -u origin master” และ“ git push master กำเนิด”
เห็นได้ชัดว่าฉันใช้งานคอมไพล์แย่มากแม้ว่าฉันจะพยายามทำความเข้าใจ จากkernel.orgสำหรับgit push: -ยู ต้งค่า-ต้นน้ำ สำหรับทุกสาขาที่เป็นข้อมูลล่าสุดหรือถูกผลักสำเร็จให้เพิ่มการอ้างอิง upstream (การติดตาม) ที่ใช้โดยคำสั่ง git-pull (1) และอาร์กิวเมนต์อื่นที่ไม่ใช้อาร์กิวเมนต์ สำหรับข้อมูลเพิ่มเติมดูbranch.<name>.mergeใน git-config (1) ที่นี่branch.<name>.mergeจากgit config: branch.<name>.merge กำหนดพร้อมกับbranch.<name>.remoteสาขาต้นน้ำสำหรับสาขาที่กำหนด มันบอก git fetch / git pull ซึ่งจะรวมสาขาและยังสามารถส่งผลกระทบต่อ git push (ดู push.default) เมื่ออยู่ในสาขา<name>จะบอก git เรียก refspec เริ่มต้นที่จะทำเครื่องหมายสำหรับการรวมใน FETCH_HEAD ค่าจะถูกจัดการเช่นส่วนที่ห่างไกลของ refspec "branch.<name>.remote"และต้องตรงกับโทษซึ่งเป็นความจริงที่ได้รับจากระยะไกลด้วย ข้อมูลการผสานถูกใช้โดย git pull (ซึ่งในตอนแรกเรียก git fetch) เพื่อค้นหาสาขาเริ่มต้นสำหรับการรวม หากไม่มีตัวเลือกนี้ให้ดึงค่าเริ่มต้น git เพื่อรวม refspec …
334 git 

4
Git - ทำงานในสาขาที่ไม่ถูกต้อง - วิธีคัดลอกการเปลี่ยนแปลงไปยังสาขาหัวข้อที่มีอยู่
ฉันทำงานเกี่ยวกับโครงการ แต่โชคไม่ดีที่ฉันลืมเปลี่ยนไปใช้สาขาของฉัน ฉันจะคัดลอกงาน (3 ไฟล์) ที่ฉันทำที่นี่จากต้นแบบไปยังสาขาของฉัน (เรียกว่าเช่นbranch123 ) โดยไม่ต้องcomittingไปยัง master ได้อย่างไร
333 git 

3
อะไรคือความแตกต่างระหว่างแท็กที่มีคำอธิบายประกอบและไม่มีการแก้ไข?
หากฉันต้องการติดแท็กการกระทำปัจจุบัน ฉันรู้ว่าทั้งสองบรรทัดคำสั่งต่อไปนี้ทำงาน: git tag <tagname> และ git tag -a <tagname> -m '<message>' ความแตกต่างระหว่างคำสั่งเหล่านี้คืออะไร?
333 git  tags  git-tag 

3
Git pull หลังจากการอัพเดทแบบบังคับ
ฉันแค่บีบบางอย่างที่ทำgit rebaseและทำgit push --force(ซึ่งฉันรู้ว่าชั่ว) ตอนนี้วิศวกรซอฟต์แวร์รายอื่นมีประวัติแตกต่างกันและเมื่อพวกเขาทำgit pullGit จะรวมเข้าด้วยกัน มีวิธีในการแก้ไขปัญหานี้rm my-repo; git clone git@example.org:my-repo.gitหรือไม่? ฉันต้องการสิ่งที่ตรงกันข้ามgit push --forceแต่git pull --forceไม่ได้ให้ผลลัพธ์ที่ต้องการ
332 git  git-pull 

7
วิธีการส่งออกบันทึก git กับบรรทัดแรกเท่านั้น?
git logฉันพยายามที่จะปรับแต่งรูปแบบของ ฉันต้องการแสดงทั้งหมดมุ่งมั่นในบรรทัดเดียว แต่ละบรรทัดควรแสดงบรรทัดแรกของข้อความยืนยันเท่านั้น ฉันพบว่าgit log --pretty=shortควรทำเคล็ดลับ แต่ในคอมพิวเตอร์ของฉันมันแสดงบันทึกเต็มเช่นเดียวกับgit log(นอกเหนือจากการประทับเวลา) นอกจากนี้ผมพยายามที่จะใช้ตัวยึดตำแหน่งที่กำหนดไว้ในหน้าคน แม้ว่าฉันไม่สามารถหาคำสั่งเพื่อทำให้ข้อความบันทึกสั้นลง ฉันลองบรรทัดนี้git log --pretty=format:'%h : %s'ซึ่งแสดงแฮชแบบ shorted %hและข้อความเต็ม%sในหนึ่งบรรทัด ฉันกำลังใช้งานgit version 1.7.3.1.msysgit.0บน Vista บางทีมันอาจจะเกี่ยวข้องกับวิธีที่ฉันเขียนข้อความที่ส่งถึงฉัน นี่คือตัวอย่าง: Added some functionality. + Added print function in Foo class. + Added conversion from foo to baz. ดังนั้นด้วยตัวอย่างที่ให้มาฉันแค่อยากจะเอาท์พุทเสริมAdded some functionality.ด้วยแฮชของ Shortend

22
Git:“ วัตถุหลวมเสียหาย”
เมื่อใดก็ตามที่ฉันดึงจากระยะไกลฉันได้รับข้อผิดพลาดต่อไปนี้เกี่ยวกับการบีบอัด เมื่อฉันเรียกใช้การบีบอัดด้วยตนเองฉันจะได้รับเหมือนกัน: $ git gc error: Could not read 3813783126d41a3200b35b6681357c213352ab31 fatal: bad tree object 3813783126d41a3200b35b6681357c213352ab31 error: failed to run repack ไม่มีใครรู้ว่าจะทำอย่างไรเกี่ยวกับที่? จากไฟล์ cat ฉันได้รับสิ่งนี้: $ git cat-file -t 3813783126d41a3200b35b6681357c213352ab31 error: unable to find 3813783126d41a3200b35b6681357c213352ab31 fatal: git cat-file 3813783126d41a3200b35b6681357c213352ab31: bad file และจาก git fsck ฉันได้รับสิ่งนี้ (ไม่ทราบว่าเกี่ยวข้องกันจริงหรือไม่): $ git fsck error: inflate: …

8
ใน git มีวิธีง่ายๆในการแนะนำสาขาที่ไม่เกี่ยวข้องกับพื้นที่เก็บข้อมูล?
ในขณะที่ช่วยเพื่อนด้วยปัญหาคอมไพล์วันนี้ฉันต้องแนะนำสาขาที่ต้องแยกจากmasterสาขาโดยสิ้นเชิง เนื้อหาของสาขานี้มีต้นกำเนิดแตกต่างจากสิ่งที่พัฒนาบนmasterสาขา แต่จริง ๆ แล้วพวกเขาจะถูกรวมเข้ากับmasterสาขาในภายหลัง ฉันจำได้จากการอ่านGitของ John Wiegley จากด้านล่างขึ้นมาว่ากิ่งเป็นป้ายกำกับการกระทำที่เป็นไปตามอนุสัญญาบางอย่างและผูกมัดผูกติดอยู่กับต้นไม้หรือไม่ เราไปสร้างคอมมิทแม่แบบคอมมิทกับที่เก็บที่มีอยู่โดยใช้ระบบประปาของ git: ดังนั้นเราจึงกำจัดไฟล์ทั้งหมดในดัชนี ... $ git rm -rf . ... ไดเรกทอรีที่แยกและไฟล์จาก tarball เพิ่มเหล่านั้นไปยังดัชนี ... $ git add . ... และสร้างวัตถุต้นไม้ ... $ git write-tree ( git-write-treeบอกเรา sha1sum ของวัตถุต้นไม้ที่สร้างขึ้น) จากนั้นเรามุ่งมั่นที่ต้นไม้โดยไม่ต้องระบุผู้ปกครองกระทำ ... $ echo "Imported project foo" | git commit-tree $TREE ( git-commit-treeบอก …
328 git  branch 

5
แก้ไขการคอมมิทใน Git หรือไม่
มีวิธีในการเปลี่ยนข้อความจากการกระทำในภายหลัง: git commit --amend # for the most recent commit git rebase --interactive master~2 # but requires *parent* คุณสามารถเปลี่ยนข้อความการส่งข้อความของการส่งข้อความครั้งแรก (ซึ่งไม่มีพาเรนต์) ได้อย่างไร

6
มีแบบแผนการตั้งชื่อสำหรับที่เก็บคอมไพล์หรือไม่?
ตัวอย่างเช่นฉันมีบริการสงบที่เรียกว่าบริการการซื้อ ฉันควรตั้งชื่อที่เก็บของฉัน: purchaserestservice purchase-rest-service purchase_rest_service หรืออย่างอื่น? การประชุมคืออะไร? แล้วใน Github ล่ะ? ที่เก็บข้อมูลสาธารณะควรเป็นไปตามมาตรฐานหรือไม่

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