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

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

10
ฉันจะใช้คอมไพล์ไฟล์ที่ไม่ได้ติดตามได้หรือไม่?
เป็นไปได้หรือไม่ที่จะขอให้คอมไพล์ diff รวมไฟล์ที่ไม่ได้ติดตามในเอาต์พุต diff หรือเป็นทางออกที่ดีที่สุดของฉันในการคอมไพล์เพิ่มไฟล์ใหม่ที่ฉันได้สร้างและไฟล์ที่มีอยู่ฉันได้แก้ไขและใช้ git diff --cached ?
270 git  diff 

6
“ git fetch --tags” รวมถึง“ git fetch” หรือไม่
คำถามที่ดีและเรียบง่าย - ฟังก์ชั่นของ "git fetch" เป็นชุดย่อยที่เข้มงวดgit fetch --tagsหรือไม่? คือถ้าฉันวิ่งgit fetch --tagsจะมีเหตุผลgit fetchอะไรไหมที่จะวิ่งตรงต่อไปทันที? สิ่งที่เกี่ยวกับgit pullและgit pull --tags? สถานการณ์เดียวกัน
270 git  pull  git-tag  git-fetch 

5
เวิร์กโฟลว์ git + LaTeX
ฉันกำลังเขียนเอกสารที่ยาวมากใน LaTeX ฉันมีคอมพิวเตอร์ที่ทำงานและแล็ปท็อปของฉันและฉันทำงานกับพวกเขาทั้งสอง ฉันต้องการเก็บไฟล์ทั้งหมดที่ซิงโครไนซ์ระหว่างคอมพิวเตอร์สองเครื่องและต้องการเก็บประวัติการแก้ไข ฉันเลือกคอมไพล์เป็น DVCS ของฉันและฉันกำลังโฮสต์ที่เก็บของฉันบนเซิร์ฟเวอร์ของฉัน ฉันยังใช้ Kile + Okular เพื่อทำการแก้ไข Kile ไม่มีปลั๊กอิน git ในตัว ฉันยังไม่ได้ร่วมมือกับใครในข้อความนี้ ฉันยังคิดที่จะวางที่เก็บข้อมูลส่วนตัวอีกชุดไว้ใน codaset ถ้าเซิร์ฟเวอร์ของฉันด้วยเหตุผลบางอย่างไม่สามารถเข้าถึงได้ ขั้นตอนการปฏิบัติงานที่แนะนำในกรณีนี้คืออะไร? การแตกแขนงสามารถติดตั้งในรูปแบบการทำงานนี้ได้อย่างไร มีวิธีเปรียบเทียบไฟล์เดียวกันสองเวอร์ชันหรือไม่ สิ่งที่เกี่ยวกับการใช้ที่ซ่อน?
270 git  latex  git-workflow 

12
ฉันจะเปลี่ยนการเปลี่ยนแปลงเป็น submodule git ได้อย่างไร
ฉันมี submodule git (RestKit) ซึ่งฉันได้เพิ่มลงใน repo ของฉัน ฉันบังเอิญเปลี่ยนไฟล์บางไฟล์ในนั้นและฉันต้องการกลับไปเป็นเวอร์ชั่นต้นฉบับ เพื่อที่จะทำเช่นนั้นฉันพยายามที่จะวิ่ง Mac:app-ios user$ git submodule update RestKit แต่อย่างที่คุณเห็นที่นี่สิ่งนี้ไม่ได้ผลเพราะมันยังเป็น "เนื้อหาที่ถูกแก้ไข": Mac:app-ios user$ git status ... # modified: RestKit (modified content) แม้ Mac:app-ios user$ git submodule update -f RestKit จะไม่คืนค่าไฟล์ที่แก้ไขในเครื่อง ฉันจะรีเซ็ตเนื้อหาของ submodule นั้นได้อย่างไร

3
ฉันจะคัดลอกเนื้อหาของสาขาไปยังสาขาท้องถิ่นใหม่ได้อย่างไร
ฉันทำงานในสาขาท้องถิ่นและผลักดันให้การเปลี่ยนแปลงเป็นระยะไกล ฉันต้องการคืนการเปลี่ยนแปลงในสาขานั้นและทำอย่างอื่นในนั้น แต่ฉันไม่ต้องการสูญเสียงานทั้งหมด ฉันคิดว่าจะสร้างสาขาใหม่ในพื้นที่และคัดลอกสาขาเก่าที่นั่นจากนั้นฉันสามารถย้อนกลับการเปลี่ยนแปลงและดำเนินการกับสาขาเดิมต่อไป มีวิธีที่ดีกว่าอาจจะ? หรือฉันจะทำอย่างไร
270 git  branch 

7
อัปเดต submodule เป็นคอมมิทล่าสุด
ฉันมีโครงการ A ซึ่งเป็นห้องสมุดและใช้ในโครงการ B ทั้งสองโครงการ A และ B มีพื้นที่เก็บข้อมูลแยกต่างหากใน Github แต่ภายใน B เรามี submodule ของ A. ฉันแก้ไขบางคลาสในไลบรารีซึ่งอยู่ใน repo A ฉันผลักไปที่ repo ระยะไกลดังนั้นไลบรารี (repo A) จึงได้รับการอัปเดต การปรับปรุงเหล่านี้ไม่ได้สะท้อนถึง "การอ้างอิง" (submodule) the submodule หมายถึงการกระทำก่อนหน้านี้ .... ฉันควรทำอย่างไรเพื่อที่จะอัพเดท submodule บน git?

8
ข้อมูลประจำตัวคอมไพล์ Bitbucket ถ้าสมัครใช้งาน Google
ฉันมีบัญชีใน bitbucket.org ที่ฉันสร้างขึ้นโดยการลงทะเบียนด้วยบัญชี Google ของฉัน ตอนนี้ทุกครั้งที่ฉันเข้าสู่ระบบฉันแค่คลิก "เข้าสู่ระบบด้วย Google" และก็ไม่เป็นไร ฉันจะเข้าถึง repos จากบรรทัดคำสั่ง git ได้อย่างไร มันขอชื่อผู้ใช้และรหัสผ่านให้ฉัน ฉันมีชื่อผู้ใช้ แต่ไม่มีรหัสผ่าน ฉันจะเข้าสู่ระบบได้อย่างไร?

7
ฉันจะ unstage ไฟล์ของฉันอีกครั้งหลังจากทำการคอมมิทท้องถิ่น?
ฉันได้ดำเนินการคำสั่งต่อไปนี้ git add <foo.java> git commit -m "add the foo.java file" ฉันจะลบการมอบหมายในพื้นที่ของฉันตอนนี้และยกเลิกขั้นตอน foo.java ได้อย่างไร หากฉันพิมพ์git reset --hardฉันพบว่ามันเปลี่ยนกลับfoo.javaไปเป็นค่าเดิม
268 git 

30
ระยะไกล GitLab: HTTP พื้นฐาน: การเข้าถึงถูกปฏิเสธและการตรวจสอบความถูกต้องร้ายแรง
ฉันใช้ Mac OS ซึ่งแตกต่างจากโพสต์นี้: 'git push origin MyBranchName' เกิดข้อผิดพลาด "HTTP พื้นฐาน: การเข้าถึงถูกปฏิเสธ" ฉันมีรหัสผ่านที่กำหนดค่าใน GitLab ฉันได้สร้างคีย์ SSL แล้วหลังจากสร้างโปรเจคบน GitLab เมื่อฉันใช้โฟลเดอร์ที่มีอยู่สำหรับโครงการใหม่และทำตามขั้นตอนด้านล่าง: โฟลเดอร์ที่มีอยู่ cd existing_folder git init git remote add origin https://gitlab.com/sobopla/Geronimod.git git add . git commit -m "Initial commit" git push -u origin master ฉันได้รับแจ้งให้ป้อนชื่อผู้ใช้และรหัสผ่าน GitLab ของฉัน หลังจากป้อนรหัสผ่านแล้วฉันจะได้รับ: ระยะไกล: HTTP พื้นฐาน: การเข้าถึงถูกปฏิเสธร้ายแรง: …
268 git  gitlab 

6
วิธีดึงสาขาระยะไกลจาก repo ของคนอื่น
ฉันมีโปรเจ็กต์ที่โฮสต์บน GitHub ที่บางคนเคยแยก พวกเขาได้สร้างสาขาใหม่ "foo" และทำการเปลี่ยนแปลงบางอย่าง ฉันจะดึง "foo" ของพวกเขาไปยังสาขาใหม่ที่ชื่อ "foo" ใน repo ของฉันได้อย่างไร ฉันเข้าใจว่าพวกเขาสามารถส่งคำขอดึงให้ฉันได้ แต่ฉันต้องการเริ่มกระบวนการนี้เอง สมมติว่าต่อไปนี้: เนื่องจากพวกเขาแยกโครงการของฉันทั้งสอง repos ของเราแบ่งปัน 'ประวัติศาสตร์' เดียวกัน แม้ว่า GitHub จะแสดงว่าโครงการของพวกเขาถูกแยกออกจากเหมือง แต่ที่เก็บในเครื่องของฉันก็ไม่มีการอ้างอิงถึงโครงการของบุคคลนี้ ฉันต้องเพิ่มรายการเหล่านั้นเป็นรีโมทหรือไม่ ฉันยังไม่มีสาขาชื่อ "foo" แต่ฉันไม่รู้ว่าฉันต้องสร้างด้วยตนเองก่อนหรือไม่ ฉันต้องการให้สิ่งนี้ดึงเข้าไปในสาขาที่แยกต่างหากไม่ใช่อาจารย์ของฉัน

7
เป็นกลุ่มสำหรับ Windows - ฉันจะพิมพ์อะไรเพื่อบันทึกและออกจากไฟล์?
ใช้ Windows XP ฉันพิมพ์โดยไม่ได้ตั้งใจgit commit -aแทนgit commit -am "My commit message"และตอนนี้ฉันกำลังดูพรอมต์ CMD ของฉันซึ่งเต็มไปด้วยเวอร์ชันไฟล์ของข้อความส่งข้อความของฉัน ("โปรดป้อนข้อความยืนยันสำหรับคุณ ... ") ฉันได้เพิ่มข้อความของฉันไปด้านบนแล้ว แต่ตอนนี้ฉันไม่สามารถทราบวิธีการบันทึกและออก ฉันพยายามกดCtrl+W + Qแต่มันไม่ทำอะไรเลย แต่เพิ่ม^ที่เคอร์เซอร์อยู่ ฉันยังพยายามEscแรกแล้วCtrl+ W+ แต่มันบอกว่าQNo write since last change (add ! to override)

5
วิธีการแสดงสิ่งที่กระทำได้อย่างไร
วิธีโง่ฉันรู้คือ: git diff commit-number1 commit-number2 มีวิธีที่ดีกว่านี้ไหม? ฉันหมายถึงฉันต้องการรู้ว่า commit1 เองฉันไม่ต้องการเพิ่ม commit2 ก่อนหน้านี้เป็นพารามิเตอร์
265 git 

5
ข้อผิดพลาดการรวมคอมไพล์
ฉันมีสาขาคอมไพล์ที่เรียกว่า9-sign-in-outมีรหัสการทำงานที่สมบูรณ์แบบและฉันต้องการที่จะกลายเป็นเจ้านาย ขณะนี้ฉันอยู่ในสาขาหลัก $ git branch 9-sign-in-out * master ฉันกำลังพยายามเปลี่ยนเป็น9-sign-in-outสาขา แต่ไม่อนุญาตให้: $ git checkout 9-sign-in-out app/helpers/application_helper.rb: needs merge config/routes.rb: needs merge error: you need to resolve your current index first ความคิดใดที่ฉันจะเพิกเฉยต่อข้อผิดพลาดของสาขาหลักทั้งหมดและเปลี่ยนเป็น9-sign-in-outสาขาหลักได้ บางทีคอมไพล์rebase ? แต่ฉันไม่ต้องการที่จะสูญเสียรหัสใน9-sign-in-outสาขา

2
git-checkout การแก้ไขที่เก่ากว่าของไฟล์ภายใต้ชื่อใหม่
ฉันเปิดไฟล์main.cppในเครื่องมือแก้ไข" " ฉันต้องการเห็นการแก้ไขก่อนหน้าของ " main.cpp" ในตัวแก้ไขด้วย วิธีที่ฉันทำตอนนี้เป็นเช่นนี้ close "main.cpp" in the editor prompt> mv main.cpp tmp prompt> git checkout HEAD^ main.cpp prompt> mv main.cpp old_main.cpp prompt> mv tmp main.cpp prompt> open "main.cpp" and "old_main.cpp" in the editor สามารถทำให้เป็นเรื่องง่ายขึ้นได้หรือไม่ดังนั้นฉันไม่ต้องปิด "main.cpp" ในเครื่องมือแก้ไข สิ่งที่ฉันหวังคือตัวแปรgit-checkoutที่สามารถทำได้ อัปเดต: ฉันใช้ git บน mac osx 10.5.7 prompt> git …
264 git 

9
วิธีรับการเปลี่ยนแปลงในสาขาใน Git
วิธีที่ดีที่สุดในการรับบันทึกการเข้าสู่สาขาตั้งแต่เวลาที่แยกจากสาขาปัจจุบันคืออะไร ทางออกของฉันคือ: git log $(git merge-base HEAD branch)..branch เอกสารประกอบสำหรับGit-diffบ่งชี้ว่าเทียบเท่ากับgit diff A...B git diff $(git-merge-base A B) Bบนมืออื่น ๆ , เอกสารสำหรับGit-REV-แยกแสดงให้เห็นว่ามีการกำหนดเป็นr1...r2r1 r2 --not $(git merge-base --all r1 r2) ทำไมเหล่านี้แตกต่างกันอย่างไร โปรดทราบว่านั่นgit diff HEAD...branchเป็นสิ่งที่ฉันต้องการ แต่คำสั่ง git log นั้นให้ฉันมากกว่าที่ฉันต้องการ ในภาพสมมติว่า: x --- --- Y Z --- สาขา / --- สิ่ง --- --- ขค d …
264 git  branch 

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