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

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

9
Git: ไม่เห็นสาขาระยะไกลใหม่
เพื่อนร่วมงานผลักดันสาขาระยะไกลใหม่ไปยังต้นทาง / dev / โฮมเพจและฉันไม่สามารถมองเห็นได้เมื่อเรียกใช้: $ git branch -r ฉันยังคงเห็นสาขาที่อยู่ห่างไกลมาก่อน ฉันคิดว่านี่เป็นเพราะการอ้างอิงระยะไกลในพื้นที่ของฉันไม่เป็นปัจจุบันดังนั้นเมื่อฉันเรียกใช้ git pull ไม่มีอะไรเกิดขึ้นเนื่องจาก git pull ดึงเฉพาะสาขาการทำงานปัจจุบันที่ถูกต้อง? แตกต่างจาก git push ที่ผลักสาขาทั้งหมดที่มีการเปลี่ยนแปลงไปยัง remote branch ที่เกี่ยวข้องหรือไม่?
118 git  remote-branch 


14
Git ไม่สนใจไฟล์ที่ไม่ได้อยู่ใน gitignore
ฉันมีเก็บคอมไพล์ที่ถูกละเลยไฟล์ภาพเช่นเดียวกับไฟล์อื่น ๆ ไม่กี่ แต่ฉัน.gitignoreไฟล์มีเพียง แต่มันไม่สนใจconfig.phpไฟล์ มีไฟล์การเพิกเฉยทั่วโลกบางไฟล์ที่ดูเหมือนจะหาไม่เจอหรือไม่? ฉันต้องระบุไฟล์เพื่อเพิ่มตอนนี้และมันก็เตือนฉันว่า: เส้นทางต่อไปนี้จะถูกละเว้นโดยไฟล์. gitignore ของคุณ เนื้อหาใน~/.gitconfigไฟล์ของฉันเป็นเพียงที่อยู่อีเมลของฉัน
117 git  gitignore 

4
ผลักดันสาขาในท้องถิ่นขึ้นสู่ GitHub
ฉันได้กำหนดค่า Git เพื่อที่เมื่อฉันเรียกใช้git pushมันจะดันการเปลี่ยนแปลงไปยังที่เก็บ GitHub ของฉัน จนถึงตอนนี้ฉันมีสาขาหลักเท่านั้น อย่างไรก็ตามตอนนี้ฉันได้สร้างสาขาในพื้นที่แล้วและมุ่งมั่นที่จะใช้: git checkout -b my_new_branch git commit สิ่งที่ฉันต้องการทำตอนนี้คือผลักดันการเปลี่ยนแปลงของฉันในสาขานี้ไปยัง GitHub ฉันแค่กดคอมไพล์หรือเปล่า? เมื่อฉันตั้งค่าครั้งแรกฉันได้รัน: git config push.default current
117 git  github  git-push 

2
Git: ยกเลิกการเปลี่ยนแปลงทั้งหมดในสาขาท้องถิ่นที่แตกต่างกัน
ฉันมีสาขาหัวข้อท้องถิ่นที่ติดตามสาขาระยะไกล เพื่อประโยชน์ในการโต้แย้งกล่าวว่าประวัติการกระทำมีลักษณะดังนี้: A--B--C--O1--O2--O3 (origin/phobos) \ L1--L2--L3 (phobos) เมื่อดูประวัติการกระทำแบบสัมพัทธ์แล้วตอนนี้ฉันต้องการยกเลิกการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นกับphobosสาขาในพื้นที่และทำให้กลับมาเป็นสำเนาโดยตรงorigin/phobosเพื่อให้ประวัติศาสตร์ท้องถิ่นมีลักษณะดังนี้: A--B--C--O1--O2--O3 (phobos origin/phobos) ฉันไม่ต้องการให้มีการเปลี่ยนแปลงเฉพาะในphobosสาขาและฉันไม่ต้องการให้การผสานใด ๆ ปรากฏในที่เก็บต้นทางในภายหลัง (ดังนั้นการรวมจึงไม่ใช่สิ่งที่ฉันคิดไว้) ดูเหมือนว่ามันจะง่ายมาก แต่ google-fu ของฉันทำให้ฉันล้มเหลว ฉันต้องทำอย่างไร
117 git 

5
Git ละเว้นและเป้าหมาย Maven
ใคร ๆ ก็รู้ว่าเป็นไปได้หรือไม่ที่จะเพิกเฉยต่ออินสแตนซ์ทั้งหมดของไดเร็กทอรีเฉพาะในโครงสร้างไฟล์ที่จัดการโดย git ฉันต้องการยกเว้นโฟลเดอร์ 'เป้าหมาย' ทั้งหมดในโครงการ maven ที่มีโมดูลย่อยจำนวนหนึ่ง ฉันรู้ว่าฉันสามารถแยกแต่ละรายการในระดับบนสุด. gitignore ได้อย่างชัดเจน แต่ฉันอยากจะระบุรูปแบบเช่น ** / target / * ที่นั่นเพื่อให้มันละเว้นอินสแตนซ์ในไดเรกทอรีย่อยโดยอัตโนมัติหรือไม่ เป็นไปได้หรือไม่

8
จะบอกให้คอมไพล์ใช้ข้อมูลประจำตัวที่ถูกต้อง (ชื่อและอีเมล) สำหรับโครงการที่กำหนดได้อย่างไร
ฉันใช้แล็ปท็อปส่วนตัวสำหรับทั้งงานและโครงการส่วนตัวและฉันต้องการใช้ที่อยู่อีเมลที่ทำงานสำหรับการทำงานในที่ทำงาน (gitolite) และที่อยู่อีเมลส่วนตัวสำหรับส่วนที่เหลือ (github) ฉันอ่านเกี่ยวกับวิธีแก้ไขปัญหาต่อไปนี้ซึ่งทั้งหมดเป็นแบบสากลหรือชั่วคราว: git config --global user.email "bob@example.com" git config user.email "bob@example.com" git commit --author "Bob <bob@example.com>" การตั้งค่าหนึ่งในGIT_AUTHOR_EMAIL, GIT_COMMITTER_EMAILหรือEMAILตัวแปรสภาพแวดล้อม วิธีแก้ปัญหาอย่างหนึ่งคือเรียกใช้ฟังก์ชันเชลล์ด้วยตนเองที่ตั้งค่าสภาพแวดล้อมของฉันให้ทำงานหรือเป็นส่วนตัวแต่ฉันค่อนข้างแน่ใจว่าฉันมักจะลืมเปลี่ยนไปใช้ข้อมูลประจำตัวที่ถูกต้องซึ่งส่งผลให้เกิดการกระทำภายใต้ข้อมูลประจำตัวที่ไม่ถูกต้อง มีวิธีผูกที่เก็บชื่อโปรเจ็กต์และอื่น ๆ กับข้อมูลประจำตัว (ชื่ออีเมล) หรือไม่ คนทำอะไร?

11
ฉันจะรับความแตกต่างระหว่างการกระทำทั้งหมดที่เกิดขึ้นระหว่างสองวันที่กับ Git ได้อย่างไร
หรือแค่การกระทำทั้งหมดที่เกิดขึ้นระหว่างวันที่สองวัน? ใน SVN คุณสามารถทำสิ่งต่างๆเช่น svn diff -r{date}:{date} จะทำ! ฉันไม่พบ Git ที่เทียบเท่ากับสิ่งนี้ โดยเฉพาะอย่างยิ่งฉันกำลังมองหาการเขียนสคริปต์เพื่อส่งอีเมลรายวันพร้อมรหัสทั้งหมดที่ตกลงไว้ในวันนั้นและโดยใคร
117 git  diff  git-diff  git-log 

4
การล้างไฟล์จาก Git repo ล้มเหลวไม่สามารถสร้างข้อมูลสำรองใหม่ได้
ฉันพยายามลบไฟล์ออกจาก repo ระยะไกลโดยเรียกใช้: git filter-branch --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD แต่ Git บ่นว่า ไม่สามารถสร้างข้อมูลสำรองใหม่ การสำรองข้อมูลก่อนหน้านี้มีอยู่แล้วใน refs / original / Force เขียนทับข้อมูลสำรองด้วย -f rm: ไม่สามารถลบ /.git-rewrite/backup-refs: Permission ปฏิเสธ rm: ไม่สามารถลบไดเร็กทอรี /.git-rewrite: Directory not empty หลังจากที่ฉันลบไดเร็กทอรี. git-rewrite บน Windows ไปแล้ว ฉันจะลบไฟล์นั้นได้อย่างไร มันเป็นไฟล์ขนาด 29Mb ที่อยู่ใน repo ของฉันดังนั้นฉันจึงจำเป็นต้องลบไฟล์ออก ฉันพยายามลบคอมมิตในgit rebase -iแต่เห็นได้ชัดว่าเนื่องจากคอมมิตแตะไฟล์ต่างๆจำนวนมาก Git …

4
กลับมาใช้ git-svn clone
ฉันเริ่มโคลนที่เก็บ SVN โดยใช้การดำเนินการโคลนของ git-svn หลังจากนำเข้าประมาณ 6 ชั่วโมง (เป็น repo ครั้งใหญ่) คอมพิวเตอร์ของฉันก็เข้ามานอนกับฉัน มีวิธีดำเนินการต่อโดยไม่ต้องทำซ้ำงานเริ่มต้นทั้งหมดหรือไม่?
117 git  git-svn 

3
git: จะแตกไฟล์ที่เปลี่ยนแปลงไปเทียบกับเวอร์ชันก่อนหน้าได้อย่างไร?
เมื่อฉันเรียกใช้ "git pull" ฉันมักต้องการทราบว่ามีอะไรเปลี่ยนแปลงระหว่างไฟล์เวอร์ชันล่าสุดกับไฟล์ใหม่ สมมติว่าฉันอยากรู้ว่าคนอื่นมุ่งมั่นกับไฟล์ใด เป็นอย่างไรบ้าง? ฉันสมมติว่ามันเป็น "git diff" โดยมีพารามิเตอร์บางตัวสำหรับการกระทำ x เทียบกับการกระทำ y แต่ดูเหมือนจะไม่สามารถรับไวยากรณ์ได้ ฉันยังพบว่า "บันทึกคอมไพล์" ทำให้สับสนเล็กน้อยและไม่แน่ใจว่าจะรับรหัสคอมมิตของไฟล์เวอร์ชันล่าสุดเทียบกับไฟล์ใหม่ได้จากที่ใด
117 git 

12
ฉันจะแก้ไขข้อผิดพลาดในอดีตได้อย่างไร?
ฉันเพิ่งอ่าน แก้ไขไฟล์เดียวในการกระทำที่ผ่านมาในคอมไพล์แต่น่าเสียดายที่โซลูชันที่ยอมรับได้ 'เรียงลำดับ' คอมมิตใหม่ซึ่งไม่ใช่สิ่งที่ฉันต้องการ นี่คือคำถามของฉัน: ทุก ๆ ครั้งฉันสังเกตเห็นข้อผิดพลาดในโค้ดของฉันในขณะที่ทำงานกับคุณสมบัติ (ไม่เกี่ยวข้อง) git blameจากนั้นแสดงให้เห็นอย่างรวดเร็วว่าข้อผิดพลาดได้รับการแนะนำเมื่อไม่กี่ครั้งที่ผ่านมา (ฉันยอมรับค่อนข้างมากดังนั้นโดยปกติจะไม่ใช่การกระทำล่าสุดที่แนะนำข้อบกพร่อง) ณ จุดนี้ฉันมักจะทำสิ่งนี้: git stash # temporarily put my work aside git rebase -i <bad_commit>~1 # rebase one step before the bad commit # mark broken commit for editing vim <affected_sources> # fix the bug git add <affected_sources> # …
117 git  rewrite 

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

2
Commit-ish และ Tree-ish ใน Git คืออะไร?
คำถาม อะไรคือตัวอย่างที่เฉพาะเจาะจงของการกระทำ-ish และ tree-ish ใน Git คำถาม Stack Overflow "tree-ish หมายถึงอะไรในคอมไพล์" เกี่ยวข้องกับ tree-ish โดยเฉพาะ แต่ฉันต้องการทำความเข้าใจเพิ่มเติมเกี่ยวกับทั้งสองอย่าง พื้นหลัง การใช้งานในเอกสาร เอกสาร Gitมีการอ้างถึง "comm-ish" และ "tree-ish" หลายรายการ ตัวอย่างเช่นหากคุณกำลังตรวจสอบซอร์สโค้ด Git : $ git grep --files-with-matches --extended-regexp "commit(-)*ish" config.txt git-describe.txt git-fast-import.txt git-name-rev.txt git-push.txt git-rebase.txt git-rev-parse.txt git.txt gitcli.txt glossary-content.txt howto/revert-branch-rebase.txt revisions.txt และ $ git grep --files-with-matches --extended-regexp …
117 git 

9
Git stash pop- ต้องผสานไม่สามารถรีเฟรชดัชนีได้
ฉันไม่สามารถเปิดที่ซ่อนของฉันได้เพราะฉันรวมสาขาซึ่งเห็นได้ชัดว่าขัดแย้งกับที่ซ่อนของฉันและตอนนี้ที่เก็บของฉันดูเหมือนจะไม่สามารถโผล่ออกมาได้ app.coffee: needs merge unable to refresh index ใครทราบวิธีแก้ปัญหานี้ แก้ไขแล้ว! ปรากฎว่าปัญหาที่เกิดขึ้นจริงคือความขัดแย้งในการผสานที่ยังไม่ได้รับการแก้ไขจากการรวมไม่ใช่ว่าการซ่อนจะทำให้เกิดความขัดแย้งในการผสาน การแก้ไข: ส่งไฟล์ที่ขัดแย้งกัน
117 git  git-stash 

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