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

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

3
“ git rm --cached x” เทียบกับ“ git reset head - x”?
GitRef.org - พื้นฐาน : git rmจะลบรายการออกจากพื้นที่จัดเตรียม สิ่งนี้แตกต่างจากgit reset HEADไฟล์ "unstages" เล็กน้อย โดย "unstage" ฉันหมายถึงมันเปลี่ยนพื้นที่การแสดงละครกลับเป็นสิ่งที่อยู่ที่นั่นก่อนที่เราจะเริ่มแก้ไขสิ่งต่างๆ git rmในทางกลับกันเพียงแค่เตะไฟล์ออกจากสเตจทั้งหมดเพื่อที่จะไม่รวมอยู่ในสแน็ปช็อตการส่งครั้งต่อไปดังนั้นจึงเป็นการลบอย่างมีประสิทธิภาพ โดยค่าเริ่มต้น a git rm fileจะลบไฟล์ออกจากพื้นที่จัดเตรียมทั้งหมดและปิดดิสก์ของคุณ> (ไดเรกทอรีทำงาน) git rm --cachedที่จะออกจากแฟ้มในไดเรกทอรีการทำงานที่คุณสามารถใช้ แต่อะไรคือความแตกต่างระหว่างgit rm --cached asdและgit reset head -- asd?

16
ฉันจะได้รับความแตกต่างแบบเคียงข้างกันเมื่อฉันทำ“ คอมไพล์ diff” ได้อย่างไร
เมื่อฉันพิมพ์ "git diff" ฉันต้องการเห็น diff แบบเคียงข้างกันเช่น "diff -y" หรือต้องการแสดง diff ในเครื่องมือ diff แบบโต้ตอบเช่น "kdiff3" สิ่งนี้สามารถทำได้?

4
วิธีการปรับเปลี่ยนคำขอดึง Github?
ฉันเปิดคำขอดึงเพื่อโครงการ ผู้ดูแลตัดสินใจที่จะยอมรับ แต่บอกให้ฉันแก้ไขเนื้อหาบางอย่าง ฉันจะทำมันได้อย่างไร ไม่ว่าฉันควรเก็บแฮชการเปลี่ยนแปลงไม่เปลี่ยนแปลงฉันจะทำอย่างไร
163 git  github  pull-request 

7
ทำไม God Submodule HEAD ของฉันถูกถอดออกจากอาจารย์?
ฉันใช้ Git submodules หลังจากดึงการเปลี่ยนแปลงจากเซิร์ฟเวอร์หลาย ๆ ครั้งหัว submodule ของฉันจะถูกถอดออกจากสาขาหลัก ทำไมมันเกิดขึ้น ฉันต้องทำเสมอ: git branch git checkout master ฉันจะแน่ใจได้อย่างไรว่า submodule ของฉันชี้ไปที่สาขาหลักเสมอ

11
ลบกิ่ง Git ท้องถิ่นหลังจากลบใน repo ระยะไกล
ฉันต้องการให้ที่เก็บข้อมูลในพื้นที่และระยะไกลของฉันซิงค์กันในแง่ของสาขาเสมอ หลังจากตรวจสอบคำขอดึงใน GitHub ฉันรวมและลบสาขาของฉันที่นั่น (ระยะไกล) ฉันจะดึงข้อมูลนี้ในพื้นที่เก็บข้อมูลในพื้นที่ของฉันและรับ Git เพื่อลบสาขาในพื้นที่ของฉันได้อย่างไร
162 git  github  branch  pull  repository 

6
อะไรคือความแตกต่างระหว่าง“ git init” และ“ git init --bare”?
ความแตกต่างระหว่างgit initและgit init --bareคืออะไร? ฉันพบว่าการโพสต์บล็อกจำนวนมากต้องการ--bareเซิร์ฟเวอร์ Git หรือไม่ จากหน้าคนก็กล่าวว่า: --bare สร้างพื้นที่เก็บข้อมูลเปล่า หากไม่ได้ตั้งค่าสภาพแวดล้อม GIT_DIR มันจะถูกตั้งค่าเป็นไดเรกทอรีการทำงานปัจจุบัน แต่จริงๆแล้วมันหมายถึงอะไร? จำเป็นต้องมี--bareสำหรับการตั้งค่าเซิร์ฟเวอร์ Git หรือไม่

6
git rebase ร้ายแรง: ต้องการการแก้ไขครั้งเดียว
ฉันมีสาขาของที่เก็บสาธารณะและฉันพยายามที่จะอัพเดทสาขาของฉันด้วยการกระทำในปัจจุบันจากที่เก็บต้นฉบับ: $ git fetch <remote> remote: Counting objects: 24, done. remote: Compressing objects: 100% (20/20), done. remote: Total 20 (delta 12), reused 0 (delta 0) Unpacking objects: 100% (20/20), done. From git://github.com/path_to/repo 9b70165..22127d0 master -> $/master $ git rebase <remote> fatal: Needed a single revision invalid upstream <remote> นี่<remote>คือแทนที่ชื่อระยะไกลของฉันและไม่ใช่ชื่อระยะไกลของฉันจริง ๆ …
162 git  github  rebase 

6
แปลง line-endings สำหรับแผนผังไดเร็กทอรีทั้งหมด (Git)
สถานการณ์ต่อไปนี้: ฉันกำลังทำงานบน Mac ที่ใช้ OS X และเพิ่งเข้าร่วมโปรเจ็กต์ซึ่งสมาชิกทั้งหมดใช้ Windows หนึ่งในภารกิจแรกของฉันคือตั้งค่า codebase ในที่เก็บ Git ดังนั้นฉันจึงดึงแผนผังไดเรกทอรีจาก FTP และลองตรวจสอบลงใน Git repo ที่ฉันเตรียมไว้ในเครื่อง เมื่อพยายามที่จะทำสิ่งนี้ทั้งหมดที่ฉันได้รับคือ fatal: CRLF would be replaced by LF in blog/license.txt. เนื่องจากสิ่งนี้มีผลต่อไฟล์ทั้งหมดที่อยู่ใต้โฟลเดอร์ "บล็อก" ฉันกำลังมองหาวิธีที่จะแปลงไฟล์ทั้งหมดในทรีให้เป็น Unix line-endings มีเครื่องมือที่ทำนอกกรอบหรือฉันจะเขียนสคริปต์บางอย่างด้วยตัวเองหรือไม่? สำหรับการอ้างอิงการกำหนดค่า Git ของฉันเกี่ยวกับการสิ้นสุดบรรทัด: core.safecrlf=true core.autocrlf=input
162 git  line-endings 

13
การเพิ่มสาขา git ในพรอมต์คำสั่ง Bash
ฉันพยายามเพิ่มสาขา git ที่ฉันกำลังทำงานอยู่ (เช็กเอาต์) บน bash prompt โดยไม่สำเร็จ .. ( ในขณะที่รักษาพา ธ ปัจจุบันของฉันซึ่งแสดงไดเรกทอรี / ไฟล์ที่แอ็คทีฟอยู่) ฉันมีไฟล์. bashrc อยู่ที่บ้าน แต่ฉันก็เห็นหลายคนพูดถึงไฟล์. profile
161 git  bash  ubuntu 

6
แยกจาก GitHub ถึง Bitbucket
ผมทำงานในโครงการที่อยู่บนพื้นฐานของCakePHP , ที่โฮสต์บนGitHub โครงการของฉันจะถูกจัดขึ้นในBitbucket ทั้งสองของพวกเขาใช้คอมไพล์ โดยทั่วไปฉันต้องการสร้าง 'fork' (ฉันไม่รู้ว่าฉันใช้คำศัพท์ที่ถูกต้องหรือไม่เพราะฉันใหม่กับคอมไพล์ ) ของ CakePHP ในที่เก็บ Bitbucket ของฉันเพื่อที่จะได้รับการอัปเดต โดยไม่จำเป็นต้องดาวน์โหลด CakePHP zip / tar และแทนที่โฟลเดอร์จากนั้นคอมมิทและพุช แต่อาจใช้ 'merge' (?)
161 git  github  bitbucket 

8
เหตุใดจึงเรียก git branch --unset-upstream เพื่อ fixup
ฉันเป็นมือใหม่มากเมื่อพูดถึงการปฏิบัติการขั้นสูงในคอมไพล์ ฉันจะรักษาของฉันบล็อกโดยใช้กรอบบล็อกOctopress แม้ว่า Octopress จะไม่ได้รับการพัฒนาใด ๆ ตั้งแต่ปี 2011 แต่มันก็ตอบสนองวัตถุประสงค์ของฉันได้ดีดังนั้นฉันจึงไม่ได้คิดที่จะเปลี่ยนแปลงอะไรเลย FYI บล็อกของฉันโฮสต์บน Github Pages วันนี้ขณะที่ทำงานกับโพสต์ใหม่git statusแสดงข้อความต่อไปนี้: On branch source Your branch is based on 'origin/master', but the upstream is gone. (use "git branch --unset-upstream" to fixup) ข้อความเดียวกันซ้ำสำหรับทุกคำสั่งที่ตามมาเช่นgit add ., และ git commit -m 'message'git push origin source ข้อความหมายถึงอะไร มีบางสิ่งแตกหักหรือไม่ ถ้าใช่คืออะไร ฉันจำเป็นต้องแก้ไขหรือไม่ …

6
ดูวันที่กระทำ "จริง" ใน GitHub (ชั่วโมง / วัน)
มีวิธีดูวันกระทำใน github ด้วยความแม่นยำของวัน / ชั่วโมง การกระทำที่เก่ากว่านั้นจะปรากฏในรูปแบบ "ที่มนุษย์อ่านได้" เช่น "2 ปีก่อน" แทนที่จะแสดงวันที่ที่แท้จริง หากไม่สามารถดูวันที่ที่เป็นจริงใน GitHub ได้วิธีแก้ปัญหาง่ายกว่าgit cloneหรือไม่
161 git  date  github  commit 

4
ในคอมไพล์การดึงข้อมูลนั้นแตกต่างจากการดึงและการผสานแตกต่างอย่างไรกับการรีบูต
ฉันแค่ไม่เข้าใจสิ่งนี้ ฉันอ่านเว็บและหนังสือมากมายและบางสิ่งก็ไม่ได้อยู่ในหัวของฉัน ใครช่วยได้โปรดให้หุ่นจำลองต่อไปนี้กับฉัน: git fetch เทียบกับ pull คอมไพล์ผสานกับ rebase
160 git 

5
ฉันจะรับเอาต์พุตที่เข้ากันได้กับ patch จาก git-diff หรือไม่
ฉันกำลังทำสิ่งที่ผิดง่ายมาก ฉันกำลังเตรียมไฟล์ปะไฟล์ธรรมดาดังนั้นฉันสามารถนำการเปลี่ยนแปลงมาใช้ใหม่ได้: $ git diff > before $ git diff something_here > save.patch $ git checkout . $ patch < save.patch $ git diff > after $ diff before after $ ด้วยความsomething_here ว่างเปล่ามันใช้งานได้เกือบ แต่ชื่อไฟล์ไม่ถูกต้อง ฉันคิดว่าฉันแค่ฉันไม่มีตัวเลือก ในชีวิตจริงฉันจะรวมหลังจากการเช็คเอาต์ดังนั้นแพทช์อาจล้มเหลว แต่คุณเห็นสิ่งที่ฉันได้รับ แก้ไข ความผิดของฉันที่นี่เพื่อถามคำถามที่ผิด คำถามจริงคือฉันต้องการบันทึกการเปลี่ยนแปลงของฉันทำการผสานแล้วนำการเปลี่ยนแปลงไปใช้อีกครั้งถ้าเป็นไปได้ ฉันถามผิดวิธีเพราะฉันคุ้นเคยกับการใช้ patch เพื่อแก้ปัญหาต่าง ๆ เหล่านี้และgit diffดูเหมือนว่าเป็นสิ่งที่ฉันต้องการทำ ความคิดเห็นของ Charles Baile มีคำตอบที่ถูกต้อง …
160 git 

7
เหตุใดจึงมี "แหล่งกำเนิด / หัวหน้า" ปรากฏขึ้นเมื่อเรียกใช้ "git branch -r"
เมื่อคุณเรียกgit branch -rว่าทำไมไม่พ้นมันรายการorigin/HEAD? ตัวอย่างเช่นมี repo ระยะไกลบน GitHub พูดด้วยสองสาขา: ต้นแบบและคุณสมบัติที่ยอดเยี่ยม ถ้าฉันทำgit cloneเพื่อคว้ามันและจากนั้นเข้าไปในไดเรกทอรีใหม่ของฉันและแสดงรายการสาขาฉันเห็นสิ่งนี้: $ git branch -r origin/HEAD origin/master origin/awesome-feature หรือลำดับอะไรก็ตามที่มันจะอยู่ใน (อัลฟาฉันแกล้งทำตัวอย่างนี้เพื่อรักษาตัวตนของความลับ repo ผู้บริสุทธิ์) ดังนั้นHEADธุรกิจคืออะไร มันเป็นสิ่งที่คนสุดท้ายที่จะpushมีการHEADชี้เมื่อพวกเขาผลักดัน? นั่นจะไม่เป็นสิ่งที่พวกเขาpushแก้ไขหรือไม่ HEADย้ายไปรอบ ๆ ... ทำไมฉันถึงสนใจว่ามีใครบางคนHEADชี้ไปที่เครื่องอื่นหรือไม่? ฉันเพิ่งได้รับการจัดการเกี่ยวกับการติดตามระยะไกลและเช่นนี้จึงเป็นหนึ่งในความสับสนที่เอ้อระเหย ขอบคุณ! แก้ไข: ฉันอยู่ภายใต้ความประทับใจที่ repos ระยะไกลโดยเฉพาะ (เช่น GitHub ที่ไม่มีใครจะ ssh และทำงานกับรหัสนั้น แต่เพียงดึงหรือผลักดัน ฯลฯ ) ไม่ได้และไม่ควรมี HEAD เพราะมีโดยทั่วไป ไม่มีสำเนาทำงาน ไม่ใช่เหรอ

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