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

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

5
ข้อความคอมมิท Git: การจัดรูปแบบ 50/72
ทิมสมเด็จพระสันตะปาปาระบุว่าสำหรับเฉพาะ Git กระทำสไตล์ข้อความโพสต์ในบล็อกของเขา: http://www.tpope.net/node/106 นี่คือบทสรุปโดยย่อของสิ่งที่เขาแนะนำ: บรรทัดแรกคือ 50 ตัวอักษรหรือน้อยกว่า จากนั้นเป็นบรรทัดว่าง ข้อความที่เหลือควรห่อหุ้มด้วยตัวอักษร 72 ตัว โพสต์บล็อกของเขาให้เหตุผลสำหรับคำแนะนำเหล่านี้ (ซึ่งฉันจะเรียกว่า "การจัดรูปแบบ 50/72" เพื่อความกระชับ): ในทางปฏิบัติเครื่องมือบางอย่างถือว่าบรรทัดแรกเป็นหัวเรื่องและย่อหน้าที่สองเป็นเนื้อหา (คล้ายกับอีเมล) git log ไม่จัดการกับการพันดังนั้นจึงเป็นการยากที่จะอ่านหากบรรทัดยาวเกินไป git format-patch --stdout แปลงคอมมิทให้เป็นอีเมล - ดังนั้นการเล่นที่ดีจะช่วยได้หากคอมแพ็คของคุณถูกห่อไว้เรียบร้อยแล้ว ประเด็นที่ฉันต้องการเพิ่มที่ฉันคิดว่าทิมจะเห็นด้วยกับ: การสรุปการกระทำของคุณเป็นการฝึกฝนที่ดีในระบบควบคุมเวอร์ชันใด ๆ ช่วยให้ผู้อื่น (หรือหลังจากนั้น) พบการกระทำที่เกี่ยวข้องได้เร็วขึ้น ดังนั้นฉันมีมุมสองสามคำถามของฉัน: อะไรคือ "ผู้นำทางความคิด" หรือ "ผู้ใช้ที่มีประสบการณ์" ของ Git ที่ยอมรับสไตล์การจัดรูปแบบ 50/72 ฉันถามสิ่งนี้เพราะบางครั้งผู้ใช้ใหม่ไม่รู้หรือไม่สนใจแนวทางปฏิบัติของชุมชน สำหรับผู้ที่ไม่ได้ใช้การจัดรูปแบบนี้มีเหตุผลหลักในการใช้รูปแบบการจัดรูปแบบที่แตกต่างกันหรือไม่? (โปรดทราบว่าฉันกำลังมองหาข้อโต้แย้งเกี่ยวกับข้อดีไม่ใช่ "ฉันไม่เคยได้ยิน" หรือ "ฉันไม่สนใจ") สังเกตุอย่างชัดแจ้งว่าที่เก็บของ …
310 git 

5
ฉันจะเพิ่ม submodule ในไดเรกทอรีย่อยได้อย่างไร
ฉันมี repo คอมไพล์~/.janus/กับพวงของ submodules ในนั้น ฉันต้องการเพิ่ม submodule ใน~/.janus/snipmate-snippets/snippets/แต่เมื่อฉันทำงานgit submodule add <git@github.com:...>ในsnipmate-snippetsไดเรกทอรีฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: You need to run this command from the toplevel of the working tree. ดังนั้นคำถามคือฉันจะเพิ่ม submodule ในsnipmate-snippetsไดเรกทอรีได้อย่างไร

9
git pull ขณะที่ไม่อยู่ในไดเรกทอรี git
สมมติว่าฉันมีไดเรกทอรี/X/Yซึ่งเป็นที่เก็บ git เป็นไปได้ไหมที่จะเรียกคำสั่งเช่นgit pullจากภายใน/Xแต่กำหนดเป้าหมาย/X/Yไดเรกทอรี? แก้ไข:ฉันเดาว่าฉันสงสัยโดยเฉพาะ: เป็นไปได้ไหมที่จะใช้คำสั่ง git แต่ไม่ต้องเปลี่ยนไดเรกทอรี? หมายเหตุ:ฉันยอมรับคำตอบของ VonCเนื่องจากมีความหรูหรามากกว่าตัวเลือกก่อนหน้า สำหรับคนทำงาน Git เก่ากว่า 1.8.5 โปรดดูคำตอบ bstpierre ด้านล่าง
308 git 

20
git: ร้ายแรง: ฉันไม่ได้จัดการโปรโตคอล 'http'
ฉันคัดลอกและวางคำสั่ง git clone จากเว็บเพจ: https://fedorahosted.org/ibus-typing-booster/ ฉันได้รับสิ่งนี้: user@host> git clone ​​http://git.fedorahosted.org/git/ibus-typing-booster.git Cloning into 'ibus-typing-booster'... fatal: I don't handle protocol '​​http'
307 git  clone  whitespace 

1
จำนวนคอมมิทชั่นต่อผู้แต่งในทุกสาขา
ฉันต้องการรับจำนวนการคอมมิตต่อผู้แต่งในทุกสาขา ฉันเห็นว่า git shortlog -s -n พิมพ์รายการที่ดีมาก แต่ไม่นับการกระทำที่ยังไม่ถูกรวมเข้ากับสาขาอื่น หากซ้ำคำสั่งนี้กับทุกสาขาแล้วแน่นอนว่าคอมมิชชันทั่วไปจะถูกนับหลายครั้ง คุณช่วยให้ฉันสคริปต์ / คำสั่งที่จะให้ภาพรวมกับฉันหรือไม่

4
ไฟล์ไดเร็กตอรี่. aide
ฉันตั้งใจ.idea/คอมมิทไดเรกทอรีเป็น git นี่เป็นสาเหตุของความขัดแย้งในทุกที่ที่ฉันต้องเช็คเอาต์ repo ของฉัน ฉันสงสัยว่าฉันจะลบไฟล์เหล่านี้จากรีโมทได้อย่างไร ฉันยังต้องการไฟล์เหล่านี้ในเครื่องเนื่องจาก Intellij IDE ต้องการมัน ฉันแค่ไม่ต้องการพวกมันในที่ห่างไกล ฉันได้เพิ่มไดเรกทอรี.idea/ของฉัน.gitignoreและมุ่งมั่นและผลักไฟล์นี้เป็นระยะไกล สิ่งนี้ดูเหมือนว่าจะไม่มีผลในระหว่างการชำระเงินของฉันในเครื่องอื่นของฉัน ฉันยังได้รับข้อความแสดงข้อผิดพลาด: error: The following untracked working tree files would be overwritten by checkout: .idea/.name .idea/compiler.xml .idea/copyright/profiles_settings.xml .idea/encodings.xml .idea/misc.xml .idea/modules.xml .idea/scopes/scope_settings.xml .idea/uiDesigner.xml .idea/vcs.xml .idea/workspace.xml
306 git 

11
ฉันจะเก็บกิ่งก้านสาขาของ Git ได้อย่างไร?
ฉันมีสาขาเก่าในที่เก็บ git ของฉันที่ไม่ได้อยู่ภายใต้การพัฒนาที่ใช้งานได้อีกต่อไป git branch -l -rผมอยากจะเก็บกิ่งไม้เพื่อที่พวกเขาจะไม่แสดงขึ้นโดยค่าเริ่มต้นเมื่อทำงาน ฉันไม่ต้องการลบเพราะฉันต้องการเก็บประวัติ ฉันจะทำสิ่งนี้ได้อย่างไร ฉันรู้ว่าเป็นไปได้ที่จะสร้างการอ้างอิงนอกเหนือจากการอ้างอิง / หัว ตัวอย่างเช่นrefs/archive/old_branch. มีผลกระทบอะไรบ้างจากการทำเช่นนั้น?
305 git 

13
Git submodule head 'การอ้างอิงไม่ใช่ข้อผิดพลาด' tree
ฉันมีโครงการที่มี submodule ที่ชี้ไปที่การกระทำที่ไม่ถูกต้อง: submodule กระทำยังคงอยู่ในพื้นที่และเมื่อฉันพยายามที่จะดึงมันจาก repo อื่นที่ฉันได้รับ: $ git submodule update fatal: reference is not a tree: 2d7cfbd09fc96c04c4c41148d44ed7778add6b43 Unable to checkout '2d7cfbd09fc96c04c4c41148d44ed7778add6b43' in submodule path 'mysubmodule' ฉันรู้ว่าสิ่ง HEAD submodule ควรจะเป็นมีวิธีที่ฉันสามารถเปลี่ยนแปลงได้ในท้องถิ่นโดยไม่ต้องผลักดันจาก repo ที่ไม่ได้กระทำ2d7cfbd09fc96c04c4c41148d44ed7778add6b43? ฉันไม่แน่ใจว่าฉันชัดเจนหรือไม่ ... นี่เป็นสถานการณ์ที่คล้ายกันที่ฉันพบ

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

5
เก็บไฟล์ไว้ใน repo Git แต่ไม่ติดตามการเปลี่ยนแปลง
ฉันมีไฟล์หลายไฟล์ในเว็บไซต์ CodeIgniter ที่ฉันต้องการมีใน repo แต่ไม่ได้ติดตามการเปลี่ยนแปลงใด ๆ ตัวอย่างเช่นฉันปรับใช้การติดตั้งเฟรมเวิร์กใหม่นี้กับไคลเอนต์ใหม่ฉันต้องการดาวน์โหลดไฟล์ต่อไปนี้ (พวกเขามีค่าเริ่มต้น CHANGEME) และฉันต้องทำการเปลี่ยนแปลงเฉพาะกับไคลเอนต์นี้ (ข้อมูลประจำตัวฐานข้อมูลข้อมูลที่อยู่อีเมล CSS ที่กำหนดเอง) // the production config files i want the files but they need to be updated to specific client needs application/config/production/config.php application/config/production/database.php application/config/production/tank_auth.php // index page, defines the environment (production|development) /index.php // all of the css/js cache (keep …
305 git 

3
Rebase branch feature ไปที่ branch ฟีเจอร์อื่น
ฉันมีสาขาฟีเจอร์ (ส่วนตัว) สองสาขาที่ฉันทำงานอยู่ a -- b -- c <-- Master \ \ \ d -- e <-- Branch1 \ f -- g <-- Branch2 หลังจากทำงานกับสาขาเหล่านี้เล็กน้อยในขณะที่ฉันพบว่าฉันต้องการการเปลี่ยนแปลงจาก Branch2 ใน Branch1 ฉันต้องการลดการเปลี่ยนแปลงใน Branch2 ลงใน Branch1 ฉันต้องการที่จะจบลงด้วยต่อไปนี้: a -- b -- c <-- Master \ d -- e -- f -- g <-- Branch1 …

5
มีวิธีทำให้ git-reflog แสดงวันที่อยู่ข้างๆแต่ละรายการหรือไม่?
คำสั่ง git-reflog ไม่ได้แสดงวันที่อยู่ข้างๆแต่ละรายการเป็นค่าเริ่มต้น ฉันคิดว่ามันจะมีประโยชน์มาก มีตัวเลือกบรรทัดคำสั่งหรือการปรับแต่งอื่น ๆ ซึ่งสามารถใช้เพื่อให้แสดงเมื่อมีการเพิ่มแต่ละรายการ reflog? manpageไม่ได้เตรียมพร้อม ...
305 git  git-reflog  reflog 

8
ฉันจะแสดงรายการไฟล์ที่ถูกลบทั้งหมดในที่เก็บ Git ได้อย่างไร?
ฉันรู้ว่า Git เก็บข้อมูลว่าเมื่อใดที่ไฟล์ถูกลบและฉันสามารถตรวจสอบความมุ่งมั่นของแต่ละบุคคลเพื่อดูว่ามีการลบไฟล์ใดบ้าง แต่มีคำสั่งที่จะสร้างรายการของไฟล์ที่ถูกลบในทุกช่วงอายุของที่เก็บหรือไม่
304 git 

10
จะกลับไปใช้ Git รุ่นล่าสุดได้อย่างไร
ฉันเพิ่งย้ายจาก SVN ไป Git และสับสนเล็กน้อยเกี่ยวกับบางสิ่งบางอย่าง ฉันต้องการเรียกใช้สคริปต์เวอร์ชันก่อนหน้าผ่านตัวดีบักดังนั้นฉันจึงทำgit checkout <previous version hash>และทำสิ่งที่ฉันต้องทำ ตอนนี้ฉันต้องการกลับไปเป็นเวอร์ชั่นใหม่ล่าสุด แต่ฉันไม่รู้แฮชสำหรับมัน เมื่อฉันพิมพ์git logฉันไม่เห็นมัน ฉันจะทำสิ่งนี้ได้อย่างไร นอกจากนี้ยังมีวิธีที่ง่ายกว่าในการเปลี่ยนรุ่นต่าง ๆ โดยการพิมพ์แฮช - เช่น "ย้อนกลับสองรุ่น" หรือ "ไปตามลำดับเหตุการณ์ล่าสุด"
303 git  git-checkout 

18
การเข้าถึงที่เก็บถูกปฏิเสธ การเข้าถึงผ่านคีย์การปรับใช้เป็นแบบอ่านอย่างเดียว
หลังจากโคลน repo ของฉันจาก heroku สำเร็จแล้วและเพิ่มรีโมทอีกอัน 1/ git clone git@heroku.com:[APP].git 2/ git remote add bitbucket ssh://git@bitbucket.org/[ACCOUNT]/[REPO].git 3/ git push bitbucket master ฉันยังคงได้รับข้อผิดพลาดนี้หลังจากรัน line (3) หรือใช้ SourceTree conq: repository access denied. access via a deployment key is read-only. ก่อนอื่นฉันไม่เข้าใจความหมายของข้อความนี้ในทางปฏิบัติ และนั่นเป็นความอัปยศ ฉันสร้างคู่คีย์ ssh และเพิ่มลงใน heroku: ssh-keygen -t rsa heroku keys:add ./id_rsa.pub ฉันยังเพิ่มคีย์ของฉันในส่วนคีย์การปรับใช้ใน BitBucket …
302 git  ssh  bitbucket  ssh-keys 

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