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

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

6
Git: วิธีที่ถูกต้องในการเปลี่ยน Active Branch ในที่เก็บเปลือยหรือไม่
ฉันมีที่เก็บเปลือยที่ใช้เป็นร้านค้าส่วนกลางสำหรับโครงการของฉัน นักพัฒนาทั้งหมดทำgit clone <repo>เพื่อแบ่งปันกับมัน เมื่อพวกเขาทำโคลนพวกเขาได้รับเช็คเอาท์สาขาต้นแบบ (ยกเว้นกรณีที่พวกเขาทำgit clone -n) เพราะrepo.git/HEADมีref: refs/heads/masterนี้ทำให้ใช้งานสาขา คำถามคือฉันจะเปลี่ยนสาขาที่ใช้งานได้อย่างถูกต้องได้อย่างไร? ฉันสามารถแฮ็คrepo.git/HEADไฟล์ได้โดยตรง แต่มันดูน่ารังเกียจและแฮ็คก็ดี ฉันพยายามทำgit checkout <otherbranch>ใน.gitไดเรกทอรีrepo แต่นั่นล้มเหลวเพราะฉันไม่ได้อยู่ในแผนผังการทำงาน ฉันพยายามgit update-ref HEAD refs/heads/otherbranchแต่ที่เพิ่งปรับปรุง refs / heads / master ให้เหมือนกับ refs / heads / otherbranch (โอเคฉันทำอันนั้นใน repository dummy ไม่ใช่ Production ของฉัน!) ฉันพยายามgit update-ref --no-deref HEAD refs/heads/otherbranchและมันก็เกือบจะได้ผล มันปรับปรุงHEADไฟล์ แต่มันตั้งค่าให้ SHA1 refs/heads/otherbranchของกระทำชี้ไปตาม 1.7.0.2.msysgit.0ผมทดสอบกับรุ่นคอมไพล์ ฉันเดาว่าไม่มีวิธีที่จะทำเช่นนี้git pushเพราะการอนุญาตให้ใครต่อใครเปลี่ยนสาขาเริ่มต้นของคุณดูเหมือนจะไม่ปลอดภัย …
195 git 


14
สถานะ Git แสดงไฟล์ที่มีการเปลี่ยนแปลงแม้ว่าเนื้อหาจะเหมือนกัน
ฉันได้รับเช็คเอาต์คอมไพล์จากคนอื่นและกำลังพยายามคอมมิชชันการเปลี่ยนแปลงที่ไม่เก็บข้อมูลลงในที่เก็บโลคัล อย่างไรก็ตามไฟล์จำนวนมาก (ถ้าไม่ใช่ทุกไฟล์) จะปรากฏขึ้นตามที่ถูกแก้ไขแม้ว่าเนื้อหาจะเหมือนกันทุกประการ ฉันตั้งค่าcore.fileModeเป็นเท็จและตั้งค่าcore.autocrlfเป็นเท็จโดยไม่สำเร็จ เป็นมูลค่าการกล่าวขวัญว่า repo Git ที่ฉันได้รับมาจากใครบางคนที่ใช้ Windows ในขณะที่ฉันใช้ Linux ฉันจะทำอย่างไรเพื่อยอมรับการเปลี่ยนแปลงที่เกิดขึ้นจริง ? แก้ไข: เอาท์พุทของgit config -l: user.name=Aron Rotteveel user.email=<removed> color.diff=auto color.status=auto color.branch=auto color.interactive=auto color.ui=true color.pager=true color.branch.current=yellow reverse color.branch.local=yellow color.branch.remote=green color.diff.meta=yellow bold color.diff.frag=magenta bold color.diff.old=red bold color.diff.new=green bold color.status.added=yellow color.status.changed=green color.status.untracked=cyan core.pager=less -FRSX core.whitespace=fix,-indent-with-non-tab,trailing-space,cr-at-eol alias.co=checkout core.repositoryformatversion=0 core.filemode=false core.bare=false core.logallrefupdates=true …
195 git 

12
เหตุใด Git จึงไม่เพิกเฉยต่อไฟล์ที่ฉันระบุ
ฉันเพิ่มบรรทัดต่อไปนี้ใน.gitignore: sites/default/settings.php แต่เมื่อฉันพิมพ์git statusมันจะแสดงไฟล์เป็นไฟล์ที่ไม่มีการจัดฉาก มีปัญหาอะไร? รูปแบบอื่น ๆ ทั้งหมดทำงานได้ดี
195 git  gitignore 

9
คำสั่ง git เพื่อย้ายโฟลเดอร์ภายในอีก
ฉันสร้างโฟลเดอร์ที่commonมีไฟล์และโฟลเดอร์มากมาย ตอนนี้ฉันต้องการย้ายcommonโฟลเดอร์ไปไว้ในincludeโฟลเดอร์เพื่อให้ดูเหมือนinclude/common ฉันลองสิ่งเหล่านี้: git add include git mv common/ include/ แต่มันล้มเหลวด้วยข้อผิดพลาดนี้ ร้ายแรง: แหล่งที่ไม่ดี, แหล่งที่มา = myrepo / common, ปลายทาง = myrepo / include ฉันพยายามgit mv common/ include/commonแต่ฉันได้รับข้อผิดพลาดเดียวกัน ความคิดใด ๆ วิธีการบรรลุเป้าหมายนี้?
194 git 


1
git ไม่สนใจไฟล์ทั้งหมดบางประเภทยกเว้นไฟล์ในโฟลเดอร์ย่อยที่เฉพาะเจาะจง
ฉันมีโครงสร้างไดเรกทอรีเช่นนี้ ราก folder1 abc.json def.json somedir more.json folder2 qwe.json rty.json ข้อมูลจำเพาะ mock1.json mock2.json somedir more_mocks.json ตอนนี้ใช้.gitignoreฉันต้องการที่จะไม่สนใจทุกไฟล์ยกเว้นสำหรับคนที่อยู่ในนั้น*.json specฉันไม่ต้องการที่จะใช้.gitignoreในfolder1และfolder2เพราะมีตันของเหล่านี้และพวกเขาจะได้รับการบันทึกจำนวนมากและผมมั่นใจว่าผมจะลืมที่จะย้ายที่เหมาะสม.gitignoreไฟล์ในสถานที่ นอกจากนี้อาจมีไดเร็กทอรีที่ซ้อนกันมากขึ้นพร้อมไฟล์ json และกฎนี้จำเป็นต้องใช้กับไดเร็กทอรีย่อยทั้งหมดด้วย ดังนั้นฉันจะละเว้นไฟล์ทั้งหมดของประเภทยกเว้นไดเรกทอรีย่อยที่แน่นอนได้อย่างไร
194 git  gitignore 

3
git-svn: ฉันจะสร้างสาขา svn ใหม่ผ่าน git ได้อย่างไร
ฉันมีที่เก็บ git ซึ่งติดตามที่เก็บ svn --stdlayoutผมโคลนโดยใช้ ฉันสร้างสาขาท้องถิ่นใหม่ผ่าน git checkout -b foobar ตอนนี้ฉันต้องการให้สาขานี้สิ้นสุด…/branches/foobarในที่เก็บ svn ฉันจะทำอย่างไรเกี่ยวกับเรื่องนั้น? (snipped ข้อความสืบสวนจำนวนมากดูประวัติคำถามหากคุณสนใจ)

9
คุณจะเลิกทำการคอมไพล์ครั้งล่าสุดได้อย่างไร?
มันเป็นไปได้ที่จะ unstage สุดท้ายฉาก (ไม่ได้มุ่งมั่น) การเปลี่ยนแปลงในการคอมไพล์ ? สมมติว่ามีไฟล์จำนวนมากในสาขาปัจจุบันบางฉากไม่บางส่วน เมื่อถึงจุดหนึ่งโปรแกรมเมอร์ที่โง่เขลาบางคนก็ดำเนินการโดยไม่ตั้งใจ: git add -- . ...แทน: git checkout -- . โปรแกรมเมอร์นี้สามารถยกเลิกการเปลี่ยนแปลงล่าสุดของเขาด้วยคำสั่งgitเวทมนต์บ้างไหม? หรือเขาควรจะยืนยันก่อนทำการทดลองในตอนแรก?
193 git 

9
ฉันจะบอก git-svn เกี่ยวกับสาขาระยะไกลที่สร้างขึ้นหลังจากดึง repo ได้อย่างไร
ฉันใช้git-svnเพื่อทำงานกับพื้นที่เก็บข้อมูลส่วนกลางของ บริษัท ของฉัน เราเพิ่งสร้างสาขาฟีเจอร์ใหม่ใน repo ส่วนกลาง ฉันจะบอก Git เกี่ยวกับมันได้อย่างไร เมื่อฉันวิ่งgit branch -rฉันจะเห็นเฉพาะกิ่งไม้ที่มีอยู่เมื่อฉันวิ่งแข่งfetchกับ Subversion repo เพื่อเริ่มต้น Git repo ของฉัน?
193 git  git-svn 

10
วิธีดึงไดเรกทอรีเฉพาะด้วย git
ฉันมีโครงการที่มีคอมไพล์และฉันต้องการโคลนหรือดึงไดเรกทอรีเฉพาะเช่น myproject / javascript เช่นเดียวกับการโค่นล้ม ทำการเปลี่ยนแปลงกระทำและผลักดันอีกครั้ง มันเป็นไปได้?
193 git  directory  pull 

1
ฉันสามารถคอมเม้นต์บรรทัดในไฟล์. git / config ได้หรือไม่
ฉันมีhttp.proxyบรรทัดไฟล์กำหนดค่าที่เก็บของฉันที่ฉันต้องการ 'เปิดและปิด' ได้อย่างง่ายดายโดยไม่ต้องจำและพิมพ์อีกครั้งการตั้งค่าทั้งหมดทุกครั้งที่ฉันอยู่ข้างหลังหรือเป็นอิสระจากการเชื่อมต่อพร็อกซีนี้ ความเป็นไปได้อีกอย่างหนึ่งคือการใช้ไฟล์กำหนดค่าที่เก็บนี้เมื่อฉันอยู่หลังพร็อกซีและเมื่อไม่ใช้งานให้ใช้ไฟล์การกำหนดค่าส่วนกลาง / โลคัลโดยไม่ต้องตั้งค่าพร็อกซี
193 git  proxy  config 

18
วิธีทำ git clone ให้สมบูรณ์สำหรับโครงการขนาดใหญ่บนการเชื่อมต่อที่ไม่เสถียร?
ฉันพยายามที่จะคอมไพล์รหัสฐานข้อมูล LibreOffice แต่ในขณะนี้ฉันมีการเชื่อมต่ออินเทอร์เน็ตประมาณ 300kbps และมันก็เป็นอะไรก็ได้ แต่เสถียร ฉันสามารถรับการเชื่อมต่อได้ตลอดเวลา แต่จากนั้นกระบวนการ git clone ก็หยุดทำงานและไม่มีวิธีที่จะทำให้มันทำงานอีกครั้ง มีวิธีการดาวน์โหลด git clone ที่ป้องกันความล้มเหลวมากกว่านี้ไหม? ตัวเลือกหนึ่งที่ฉันคิดว่าตัวเองคือการดาวน์โหลดไดเรกทอรี. git ของคนอื่น แต่นั่นก็ขึ้นอยู่กับผู้อื่นมากเกินไปและดูเหมือนจะไม่เป็นทางออกที่ดีที่สุดสำหรับฉัน
193 git  git-clone 

4
Git: ระยะไกลเริ่มต้นที่กำหนดค่าไว้สำหรับสาขาคืออะไร
hubฉันมีพื้นที่เก็บข้อมูลระยะไกลเปลือย ฉันทำงานเฉพาะในmasterสาขา ประโยคสุดท้ายของข้อความแสดงข้อผิดพลาดด้านล่างทำให้ฉันสงสัย: ฉันจะหาได้อย่างไรว่า"รีโมทเริ่มต้นที่กำหนดค่าไว้สำหรับสาขาปัจจุบันของคุณ"คืออะไร และฉันจะตั้งได้อย่างไร [myserver]~/progs $ git remote -v hub ~/sitehub/progs.git/ (fetch) hub ~/sitehub/progs.git/ (push) [myserver]~/progs $ git branch -r hub/master [myserver]~/progs $ cat .git/HEAD ref: refs/heads/master [myserver]~/progs $ git pull hub You asked to pull from the remote 'hub', but did not specify a branch. Because this is …

14
Git กล่าวว่า“ คำเตือน: เพิ่มอย่างถาวรในรายการโฮสต์ที่รู้จัก”
ทุกครั้งที่ฉันใช้ git เพื่อโต้ตอบกับรีโมทเช่นเมื่อดึงหรือดันฉันจะแสดงข้อความต่อไปนี้: คำเตือน: เพิ่ม '... ' (RSA) ลงในรายการโฮสต์ที่รู้จักอย่างถาวร ฉันจะป้องกันข้อความที่น่ารำคาญนี้ไม่ให้แสดงได้อย่างไร มันเป็นเพียงความรำคาญ - ทุกอย่างทำงานได้อย่างถูกต้อง

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