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

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

6
ฉันจะส่งการคอมมิตเฉพาะไปยังรีโมตได้อย่างไรและไม่คอมมิทก่อนหน้า?
ฉันได้คอมมิตหลายครั้งในไฟล์ที่แตกต่างกัน แต่จนถึงตอนนี้ฉันต้องการที่จะส่งไปยังที่เก็บข้อมูลระยะไกลของฉันเฉพาะการกระทำที่เฉพาะเจาะจง เป็นไปได้ไหม
827 git  commit  push 

11
ฉันจะดูว่าสาขา Git ใดกำลังติดตามสาขาระยะไกล / ต้นน้ำ
Наэтотвопросестьответына กองมากเกินнарусском : Какузнать, какнастроенынаผลัก / ดึงлокальныеветки? ฉันรู้ว่าฉันสามารถทำได้git branch --allและนั่นแสดงให้ฉันเห็นทั้งในและนอกเมือง แต่มันก็ไม่มีประโยชน์ที่จะแสดงความสัมพันธ์ระหว่างพวกเขา ฉันจะแสดงรายการกิ่งไม้ในวิธีที่แสดงว่าสาขาท้องถิ่นกำลังติดตามรีโมตใด
824 git 

15
เปลี่ยนชื่อสาขาหลักสำหรับที่เก็บ Git ทั้งในพื้นที่และระยะไกล
ฉันมีสาขาที่ติดตามสาขาที่ห่างไกลmasterorigin/master ฉันต้องการเปลี่ยนชื่อพวกเขาเป็นmaster-oldทั้งในเครื่องและบนรีโมท เป็นไปได้ไหม สำหรับผู้ใช้รายอื่นที่ติดตามorigin/master(และผู้ที่อัปเดตmasterสาขาในท้องถิ่นของตนตลอดเวลาgit pull) จะเกิดอะไรขึ้นหลังจากฉันเปลี่ยนชื่อสาขาระยะไกล พวกเขาจะgit pullยังใช้งานได้หรือไม่หรือเกิดข้อผิดพลาดที่ไม่สามารถหาได้origin/masterอีกต่อไป จากนั้นต่อไปฉันต้องการสร้างmasterสาขาใหม่(ทั้งภายในและระยะไกล) อีกครั้งหลังจากที่ผมทำอย่างนี้อะไรจะเกิดขึ้นในขณะนี้ถ้าผู้ใช้งานอื่นทำgit pull? ฉันเดาว่าทั้งหมดนี้จะส่งผลให้เกิดปัญหามากมาย มีวิธีที่สะอาดเพื่อให้ได้สิ่งที่ฉันต้องการหรือไม่? หรือฉันควรปล่อยให้masterมันเป็นและสร้างสาขาใหม่master-newและทำงานที่นั่นต่อไปหรือไม่
820 git  git-branch  git-pull 

10
Git ส้อมจริงแล้ว Git โคลน
ฉันได้ยินคนพูดอยู่เสมอว่าพวกเขากำลังใช้รหัสใน Git Git "fork" ฟังดูน่าสงสัยเหมือน Git "clone" บวกกับความตั้งใจด้านจิตใจ (ไร้ความหมาย) ที่จะละทิ้งการรวมในอนาคต ไม่มีคำสั่ง fork ใน Git ใช่ไหม GitHub ทำให้ส้อมของจริงมากขึ้นโดยการติดต่อสื่อสารหลักบนมัน นั่นคือคุณกดปุ่ม fork และหลังจากนั้นเมื่อคุณกดปุ่ม pull pull ระบบจะฉลาดพอที่จะส่งอีเมลถึงเจ้าของ ดังนั้นมันเป็นเรื่องเล็กน้อยเกี่ยวกับการเป็นเจ้าของพื้นที่เก็บข้อมูลและสิทธิ์ ใช่ไม่ใช่? มีความกังวลใด ๆ เกี่ยวกับ GitHub หรือไม่ที่ขยาย Git ในทิศทางนี้? หรือข่าวลือใด ๆ ของ Git ที่ดูดซับการทำงาน?

8
วิธีเชื่อมโยงโฟลเดอร์กับแอพ Heroku ที่มีอยู่
ฉันมีแอพ Rails ที่มีอยู่ใน GitHub และนำไปใช้กับ Heroku ฉันพยายามตั้งค่าเครื่องพัฒนาใหม่และได้โคลนโครงการจากที่เก็บ GitHub ของฉัน อย่างไรก็ตามฉันสับสนว่าจะเชื่อมโยงโฟลเดอร์นี้กับ Heroku ได้อย่างไร เดิมทีฉันใช้heroku createคำสั่ง แต่เห็นได้ชัดว่าฉันไม่ต้องการทำเช่นนี้ในเวลานี้
815 git  heroku 

21
คอมไพล์กู้คืนไฟล์ที่ถูกลบโดยที่ไม่ได้กระทำหลังจากลบ
ฉันลบบางไฟล์ ฉันยังไม่ได้กระทำ ฉันต้องการรีเซ็ตพื้นที่ทำงานของฉันเพื่อกู้คืนไฟล์ git checkout .ผม แต่ไฟล์ที่ถูกลบยังคงหายไป และgit statusแสดงให้เห็นว่า: # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # deleted: cc.properties # deleted: store/README # deleted: store/cc.properties # ทำไมไม่git checkout .ตั้งค่าพื้นที่ทำงานเพื่อHEAD?
812 git 

8
เมื่อใดที่ฉันควรใช้ git pull --rebase
ฉันรู้ว่าบางคนที่ใช้เป็นgit pull --rebaseค่าเริ่มต้นและคนอื่น ๆ ที่ยืนยันว่าจะไม่ใช้มัน ฉันเชื่อว่าฉันเข้าใจความแตกต่างระหว่างการควบรวมกิจการและ rebasing git pullแต่ฉันพยายามที่จะวางนี้ในบริบทของ มันเป็นเรื่องเกี่ยวกับที่ไม่ต้องการเห็นข้อความที่รวมเข้ามาจำนวนมากหรือมีปัญหาอื่น ๆ อีกหรือไม่?
806 git 

30
Git - ร้ายแรง: ไม่สามารถสร้าง '/path/my_project/.git/index.lock': มีไฟล์อยู่
ฉันยังได้รับข้อความแสดงข้อผิดพลาดนี้เมื่อฉันพยายามย้ายแผนผังโครงการของฉันไปยัง repo คอมไพล์ ฉันตรวจสอบสิทธิ์ของไดเรกทอรีของฉันกับโปรเจคนี้และตั้งค่าไว้ที่ 777 ในเทอร์มินัลในไดเรกทอรีที่my_projectฉันตั้งค่าไว้: git init และถ้าฉันลอง คอมไพล์เพิ่ม หรือ git commit -m "อัพโหลดครั้งแรก" ดังนั้นฉันจะได้รับข้อผิดพลาด fatal: Unable to create '/path/my_proj/.git/index.lock': File exists. If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git process is running …
805 git 

11
ย้อนกลับไปที่ Git เก่าที่กระทำใน repo สาธารณะ
ฉันจะย้อนกลับไปสู่การคอมมิทเฉพาะทางได้อย่างไร? คำตอบที่ดีที่สุดที่ใครบางคนสามารถให้ฉันได้คือการใช้git revertX ครั้งจนกว่าฉันจะถึงความมุ่งมั่นที่ต้องการ สมมุติว่าฉันต้องการกลับไปใช้ความมุ่งมั่นที่อายุ 20 คอมมิทฉันจะต้องรันมัน 20 ครั้ง มีวิธีที่ง่ายกว่านี้หรือไม่? ฉันไม่สามารถใช้รีเซ็ตได้เพราะพื้นที่เก็บข้อมูลนี้เป็นแบบสาธารณะ


19
ฉันจะโคลนสาขาเดียวใน Git ได้อย่างไร
ฉันมีที่เก็บ Git ในพื้นที่ชื่อ 'Skeleton' ที่ฉันใช้สำหรับเก็บโครงกระดูกของโครงการ มีสาขาไม่กี่แห่งสำหรับโครงการประเภทต่างๆ: casey@agave [~/Projects/skeleton] git branch * master rails c c++ ถ้าฉันต้องการตรวจสอบสาขาหลักสำหรับโครงการใหม่ฉันสามารถทำได้ casey@agave [~/Projects] git clone skeleton new Initialized empty Git repository in /Users/casey/Projects/new/.git/ และทุกอย่างเป็นสิ่งที่ฉันต้องการ โดยเฉพาะอย่างยิ่งสาขาต้นแบบใหม่ชี้ไปที่สาขาโครงกระดูกหลักและฉันสามารถผลักและดึงเพื่อย้ายการเปลี่ยนแปลงไปยังการตั้งค่าโครงการพื้นฐาน อย่างไรก็ตามสิ่งที่ใช้ไม่ได้คือถ้าฉันต้องการโคลนสาขาอื่น ฉันไม่สามารถรับได้ดังนั้นฉันจึงดึงเฉพาะสาขาที่ฉันต้องการเช่นrailsสาขาจากนั้นที่เก็บใหม่จะมีmasterสาขาที่ผลักดันและดึงจากrailsสาขาที่เก็บโครงกระดูกตามค่าเริ่มต้น มีวิธีที่ดีในการทำสิ่งนี้หรือไม่? หรือบางทีนี่อาจไม่ใช่วิธีที่ Git ต้องการให้ฉันจัดโครงสร้างสิ่งต่าง ๆ และฉันก็เปิดรับอย่างแน่นอน บางทีฉันควรจะมีที่เก็บหลายแห่งด้วยที่เก็บโครงกระดูก Ruby on Rails ที่ติดตามที่เก็บโครงกระดูกหลัก? และโครงการใด ๆ ก็ตามที่โคลนที่เก็บโครงกระดูก Ruby on Rails
799 git  branch  git-clone 

4
เลิกทำการคอมมิทเฉพาะใน Git ที่ถูกผลักไปที่ repos ระยะไกล
เป็นวิธีที่ง่ายที่สุดในการยกเลิกการกระทำที่เฉพาะเจาะจงคือ: ไม่อยู่ในหัวหรือหัวหน้า ได้ถูกผลักไปยังระยะไกล เพราะถ้ามันไม่ได้กระทำล่าสุด git reset HEAD ไม่ทำงาน และเนื่องจากมันถูกผลักไปที่รีโมต git rebase -i และ git rebase --onto จะทำให้เกิดปัญหาในรีโมท ยิ่งกว่านั้นฉันไม่ต้องการแก้ไขประวัติจริงๆ หากมีรหัสไม่ดีแสดงว่ามีอยู่ในประวัติและสามารถมองเห็นได้ ฉันแค่ต้องการมันในสำเนาที่ใช้งานได้และฉันก็ไม่รังเกียจที่จะรวมการย้อนกลับ กล่าวอีกนัยหนึ่งสิ่งที่เทียบเท่าGitของคำสั่ง svn ต่อไปนี้: svn merge -r 303:295 http://svn.example.com/repos/calc/trunk ซึ่งจะลบการเปลี่ยนแปลงทั้งหมดจาก 295 ถึง 302 โดยย้อนกลับการรวมการเปลี่ยนแปลงทั้งหมดในการแก้ไขเหล่านั้นเป็นการกระทำใหม่ svn merge -c -302 ^/trunk ซึ่งยกเลิกการกระทำ 302 แน่นอนโดยการเพิ่มการกระทำอื่นที่ย้อนกลับผสานการเปลี่ยนแปลงจากการกระทำนั้น ๆ ฉันคิดว่ามันควรจะใช้งานได้ง่ายใน Git และกรณีการใช้งานที่ค่อนข้างธรรมดา ปรมาณูมีจุดมุ่งหมายอะไรอีก? เรามีการจัดเตรียมstashingและทั้งหมดเพื่อให้แน่ใจว่าการกระทำนั้นสมบูรณ์แบบในระดับอะตอมคุณไม่ควรเลิกทำการคอมมิทเหล่านั้นอย่างน้อยหนึ่งอย่างได้อย่างง่ายดายหรือไม่?

5
วิธีเลิกทำการคอมไพล์ผสานกับข้อขัดแย้ง
mybranch1ฉันอยู่ในสาขา mybranch2ถูกแยกออกจากกันmybranch1และมีการเปลี่ยนแปลงเกิดmybranch2ขึ้น จากนั้นในขณะที่mybranch1ฉันได้ทำgit merge --no-commit mybranch2 มันแสดงให้เห็นว่ามีความขัดแย้งในขณะที่ผสาน ตอนนี้ฉันต้องการทิ้งทุกอย่าง ( mergeคำสั่ง) เพื่อที่mybranch1จะกลับไปเหมือนเดิม ฉันไม่รู้ว่าฉันจะทำอย่างไรเกี่ยวกับเรื่องนี้

13
จะเปลี่ยนสาขาในพื้นที่ด้วยรีโมตสาขาทั้งหมดใน Git ได้อย่างไร
ฉันมีสองสาขา: สาขาท้องถิ่น (สาขาที่ฉันทำงานด้วย) สาขาระยะไกล (สาธารณะเท่านั้นที่ผ่านการทดสอบอย่างดี) เมื่อเร็ว ๆ นี้ฉันทำให้สาขาของฉันสับสน ฉันจะแทนที่สาขาในพื้นที่ทั้งหมดด้วยรีโมตได้อย่างไรฉันจึงสามารถทำงานต่อจากที่สาขารีโมตได้ในขณะนี้ ฉันค้นหาแล้วและเช็คเอาท์ที่สาขาระยะไกลในพื้นที่ไม่มีผลใด ๆ
778 git 

10
ฉันจะแยกไฟล์เดียว (หรือเปลี่ยนเป็นไฟล์) จากที่เก็บ git ได้อย่างไร
ฉันต้องการทราบว่าเป็นไปได้หรือไม่ที่จะแยกไฟล์เดียวหรือแตกต่างจากไฟล์จาก git stash โดยไม่ต้องหยุดเซ็ตการแก้ไขที่ซ่อน ใครบ้างที่สามารถให้คำแนะนำ / แนวคิดเกี่ยวกับเรื่องนี้ได้บ้าง
773 git  git-stash 

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