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

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

10
ทำไม 'คำขอการดึง' ของคอมไพล์จึงไม่เรียกว่า
คำศัพท์ที่ใช้ในการรวมสาขากับที่เก็บอย่างเป็นทางการคือ 'คำขอดึง' นี่คือความสับสนตามที่ปรากฏว่าฉันขอให้ผลักดันการเปลี่ยนแปลงของฉันไปยังที่เก็บอย่างเป็นทางการ เหตุใดจึงเรียกว่าคำขอดึงและไม่ใช่คำขอส่งข้อมูล
451 git  github  pull-request 

11
ยกเลิกการติดตามไฟล์จากคอมไพล์ชั่วคราว
ฉันได้ตั้งค่าคอมไพล์ท้องถิ่นบนเครื่องของฉัน เมื่อฉันเริ่มต้นคอมไพล์ฉันเพิ่ม libs และไบนารีที่รวบรวมไว้ล่วงหน้า อย่างไรก็ตามในระหว่างการพัฒนาของฉันฉันไม่ต้องการเช็คอินไฟล์เหล่านั้นเป็นระยะ ๆ ฉันไม่ต้องการลบไฟล์เหล่านี้ออกจาก repo มีวิธีใดที่จะไม่ติดตามไฟล์เหล่านี้จนกว่าฉันจะเสร็จสิ้นการพัฒนา (ฉันคิดว่าฉันไม่สามารถใช้. gitignore ได้เพราะมันใช้งานได้กับไฟล์ที่ไม่ได้อยู่ใน git เท่านั้นฉันต้องการปิดการใช้งานการติดตามไฟล์ชั่วคราว)
450 git  github  repository 

2
Git - ความแตกต่างระหว่าง 'สันนิษฐานว่าไม่เปลี่ยนแปลง' และ 'skip-worktree'
ฉันมีการเปลี่ยนแปลงในท้องถิ่นเป็นไฟล์ที่ฉันไม่ต้องการส่งไปยังที่เก็บของฉัน เป็นไฟล์การกำหนดค่าสำหรับการสร้างแอปพลิเคชันบนเซิร์ฟเวอร์ แต่ฉันต้องการสร้างในเครื่องด้วยการตั้งค่าที่แตกต่างกัน โดยปกติไฟล์จะปรากฏขึ้นเสมอเมื่อฉัน 'สถานะ git' เป็นสิ่งที่จะจัดฉาก ฉันต้องการซ่อนการเปลี่ยนแปลงนี้โดยเฉพาะและไม่ยอมรับ ฉันจะไม่ทำการเปลี่ยนแปลงอื่น ๆ กับไฟล์ หลังจากขุดไปรอบ ๆ ฉันเห็น 2 ตัวเลือก: 'สันนิษฐานว่าไม่เปลี่ยนแปลง' และ 'skip-worktree' คำถามก่อนหน้านี้พูดถึงพวกเขาที่นี่แต่ไม่ได้อธิบายความแตกต่างของพวกเขา คำถามของฉันคือสิ่งนี้: สองคำสั่งต่างกันอย่างไร ทำไมบางคนจะใช้อย่างใดอย่างหนึ่ง
450 git  git-index 

30
ข้อผิดพลาด git: ไม่สามารถผลักดันผู้อ้างอิงบางคนไปที่ระยะไกล
ด้วยเหตุผลบางอย่างฉันไม่สามารถผลักดันได้ในขณะที่ฉันสามารถทำได้เมื่อวานนี้ บางทีฉันอาจยุ่งกับ configs หรืออะไรบางอย่าง นี่คือสิ่งที่เกิดขึ้น: เมื่อฉันใช้ต้นกำเนิดต้นกำเนิดการผลักดัน git สิ่งที่ไดเร็กทอรีการทำงานและที่เก็บรีโมตของฉันดูเหมือน:
450 git  github 


15
รายการนามแฝง Git
ฉันจะพิมพ์รายการนามแฝง git ของฉันได้อย่างไรเช่นมีบางสิ่งที่คล้ายคลึงกับaliasคำสั่งbash
444 git  terminal  alias 

9
วิธีดูไฟล์ต่าง ๆ ในคอมไพล์ก่อนคอมมิท
สิ่งนี้มักจะเกิดขึ้นกับฉัน: ฉันกำลังทำงานเกี่ยวกับการเปลี่ยนแปลงที่เกี่ยวข้องสองสามอย่างในเวลาเดียวหรือสองวันและเมื่อถึงเวลาที่จะต้องลงมือฉันก็ลืมสิ่งที่เปลี่ยนแปลงไปในไฟล์เฉพาะ (นี่เป็นเพียง repo คอมไพล์ส่วนตัวดังนั้นฉันโอเคที่มีมากกว่าหนึ่งการปรับปรุงในการกระทำ) มีวิธีใดที่จะแสดงตัวอย่างการเปลี่ยนแปลงระหว่างไฟล์ในเครื่องของฉันซึ่งกำลังจะถูกเช็คอินและการส่งมอบครั้งล่าสุดสำหรับไฟล์นั้น สิ่งที่ต้องการ: git diff --changed /myfile.txt และมันจะพิมพ์ออกมาเช่น: line 23 (last commit): var = 2+2 (current): var = myfunction() + 2 line 149 (last commit): return var (current): return var / 7 ด้วยวิธีนี้ฉันสามารถเห็นสิ่งที่ฉันทำในไฟล์นั้นได้อย่างรวดเร็วตั้งแต่มีการเช็คอินครั้งล่าสุด
443 git  git-diff 

25
วิธีแก้ไขข้อผิดพลาด GIT: ไฟล์อ็อบเจ็กต์ว่างเปล่า
เมื่อฉันพยายามที่จะทำการเปลี่ยนแปลงฉันได้รับข้อผิดพลาดนี้: error: object file .git/objects/31/65329bb680e30595f242b7c4d8406ca63eeab0 is empty fatal: loose object 3165329bb680e30595f242b7c4d8406ca63eeab0 (stored in .git/objects/31/65329bb680e30595f242b7c4d8406ca63eeab0) is corrupt ความคิดใดวิธีการแก้ไขข้อผิดพลาดนี้? แก้ไข ฉันพยายามgit fsckฉันได้: error: object file .git/objects/03/dfd60a4809a3ba7023cbf098eb322d08630b71 is empty fatal: loose object 03dfd60a4809a3ba7023cbf098eb322d08630b71 (stored in .git/objects/03/dfd60a4809a3ba7023cbf098eb322d08630b71) is corrupt
442 git 

11
การจัดการการเปลี่ยนชื่อไฟล์ในคอมไพล์
ฉันได้อ่านว่าเมื่อเปลี่ยนชื่อไฟล์ในคอมไพล์คุณควรยอมรับการเปลี่ยนแปลงใด ๆ ดำเนินการเปลี่ยนชื่อของคุณแล้วระยะไฟล์เปลี่ยนชื่อของคุณ Git จะจดจำไฟล์จากเนื้อหาแทนที่จะมองว่าเป็นไฟล์ที่ไม่ได้ติดตามใหม่และเก็บประวัติการเปลี่ยนแปลง git mvแต่ทำเพียงแค่คืนนี้ฉันจบลงด้วยการย้อนกลับไป > $ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: index.html # เปลี่ยนชื่อสไตล์ชีทของฉันใน Finder จากiphone.cssเป็นmobile.css > $ git status # On branch master # Changes to be committed: # …
440 git  git-mv 

6
อะไรคือความแตกต่างระหว่าง“ รีเซ็ต git” และ“ เช็คเอาต์ git”?
ฉันคิดถึงgit resetและgit checkoutเหมือนเดิมเสมอในแง่ที่ว่าทั้งสองนำโครงการกลับสู่การกระทำที่เฉพาะเจาะจง อย่างไรก็ตามฉันรู้สึกว่าพวกเขาไม่สามารถเหมือนกันอย่างแน่นอนซึ่งจะซ้ำซ้อน ความแตกต่างที่แท้จริงระหว่างสองคืออะไร ฉันสับสนเล็กน้อยเนื่องจาก svn มีเพียงsvn coการย้อนกลับการกระทำ ADDED VonC และ Charles อธิบายความแตกต่างระหว่างgit resetและgit checkoutดีจริง ๆ ความเข้าใจปัจจุบันของฉันคือการgit resetย้อนกลับการเปลี่ยนแปลงทั้งหมดกลับไปสู่การยอมรับที่เฉพาะเจาะจงในขณะที่git checkoutเตรียมมากขึ้นหรือน้อยลงสำหรับสาขา ฉันพบไดอะแกรมสองแผนภาพต่อไปนี้ค่อนข้างมีประโยชน์ในการทำความเข้าใจนี้: เพิ่ม 3 จากhttp://think-like-a-git.net/sections/rebase-from-the-ground-up/using-git-cherry-pick-to-simulate-git-rebase.html การชำระเงินและการรีเซ็ตสามารถเลียนแบบได้ rebase git checkout bar git reset --hard newbar git branch -d newbar

5
ดึงข้อมูลจากจุดเริ่มต้นด้วยสาขาระยะไกลที่ถูกลบหรือไม่
เมื่อฉันทำgit fetch originและที่มามีสาขาที่ถูกลบดูเหมือนว่าจะไม่อัปเดตในที่เก็บของฉัน เมื่อฉันก็ยังคงแสดงให้เห็นว่าgit branch -rorigin/DELETED_BRANCH ฉันจะแก้ไขสิ่งนี้ได้อย่างไร
440 git  git-fetch 

6
ไม่สามารถแสดงแผนผัง Git ในเทอร์มินัล
บทความเก่าของ Killswitchcollective.com วันที่ 30 มิถุนายน 2009มีปัจจัยการผลิตและผลผลิตดังต่อไปนี้ git co master git merge [your_branch] git push upstream A-B-C-D-E A-B-C-D-E-F-G \ ----> \ your branch C-D-E G ฉันสนใจว่าคุณจะได้รับแผนผังการดูคอมมิทในเทอร์มินัลของคุณอย่างไรโดยไม่ต้องใช้ Gitk หรือ Gitx ใน OS / X คุณจะได้รับมุมมองที่เหมือนต้นไม้ของการกระทำใน terminal ได้อย่างไร?

26
รับ“ ร้ายแรง: ไม่ใช่ที่เก็บ git” เมื่อพยายามรีโมตเพิ่ม Git repo
ฉันแนะนำตัวให้รู้จักกับ Git โดยทำตามบทช่วยสอนนี้: รับ jekyll ทำงานบนเกือบ ทุกอย่างทำงานได้ดีจนกระทั่งส่วนที่ repo ถูกเพิ่มเข้าไปในเครื่องของฉัน: git remote add nfsn ssh://USERNAME@NFSNSERVER/home/private/git/REPONAME.git (หลังจากแทนที่ USERNAME, NFSNSERVER และ REPOAME ด้วยชื่อที่ถูกต้อง) ฉันได้รับข้อผิดพลาด: fatal: Not a git repository (or any of the parent directories): .git คุณช่วยฉันผ่านขั้นตอนนี้ไปได้ไหม
439 git 

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

6
วิธีใช้ gis bisect
ฉันได้อ่านบทความที่บอกว่ายอดgit bisectเยี่ยมมาก อย่างไรก็ตามฉันไม่ใช่เจ้าของภาษาและฉันก็ไม่เข้าใจว่าทำไมมันถึงยอดเยี่ยม ใครก็ได้ช่วยสาธิตด้วยรหัสตัวอย่างได้บ้าง: วิธีใช้งาน มันเป็นsvn blameอย่างไร
438 git  git-bisect 

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