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

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

11
ฉันจะทำให้ Git เพิกเฉยต่อโหมดไฟล์ (chmod) ได้อย่างไร?
ฉันมีโครงการที่ฉันต้องเปลี่ยนโหมดของไฟล์ด้วยchmod777 ในขณะที่กำลังพัฒนา แต่ไม่ควรเปลี่ยนใน repo หลัก Git เลือกchmod -R 777 .และทำเครื่องหมายไฟล์ทั้งหมดว่ามีการเปลี่ยนแปลง มีวิธีในการเปลี่ยนแปลงการเพิกเฉยโหมด Git ที่ทำกับไฟล์หรือไม่?
2309 git  ignore  chmod 

30
Git ดึงสาขาจากระยะไกล
เพื่อนร่วมงานของฉันและฉันกำลังทำงานในพื้นที่เก็บข้อมูลเดียวกัน เราได้แยกออกเป็นสองสาขาแต่ละทางเทคนิคสำหรับโครงการที่แตกต่างกัน แต่พวกเขามีความคล้ายคลึงกันดังนั้นบางครั้งเราจะต้องการที่จะกระทำกลับไป * The จากmasterbranch branchแต่ผมมี เพื่อนร่วมงานของฉันจะดึงสาขานั้นโดยเฉพาะได้อย่างไร git cloneของพื้นที่เก็บข้อมูลไม่ได้ดูเหมือนจะสร้างสาขาในประเทศสำหรับเขา แต่ฉันสามารถเห็นพวกเขาอาศัยอยู่บน Unfuddle หลังจากผลักดันที่สิ้นสุดของฉัน -b checkoutนอกจากนี้เมื่อฉันเดิมทำสาขาที่ผมทำ มันสร้างความแตกต่างได้มากน้อยแค่ไหน? $ git branch -r origin/HEAD -> origin/master origin/daves_branch origin/discover origin/master $ git fetch origin discover $ git checkout discover นี่คือคำสั่งที่ฉันใช้ แต่มันไม่ทำงานแน่นอน ฉันต้องการที่จะตรวจสอบสาขานั้นและจากนั้นผลักดันและยอมรับกลับไปเพียงการเปลี่ยนแปลงสาขาจากผู้ทำงานร่วมกันหรือเวิร์กสเตชันต่างๆ

18
คุณโคลนที่เก็บ Git ลงในโฟลเดอร์ที่ต้องการได้อย่างไร
การดำเนินการคำสั่งgit clone git@github.com:whateverจะสร้างไดเรกทอรีในโฟลเดอร์ปัจจุบันของฉันชื่อwhateverและวางเนื้อหาของที่เก็บ Git ลงในโฟลเดอร์นั้น: /httpdocs/whatever/public ปัญหาของฉันคือฉันต้องการเนื้อหาของที่เก็บ Git ที่โคลนในไดเรกทอรีปัจจุบันของฉันเพื่อให้ปรากฏในตำแหน่งที่เหมาะสมสำหรับเว็บเซิร์ฟเวอร์: /httpdocs/public ฉันรู้วิธีการย้ายไฟล์หลังจากที่ฉันได้โคลนพื้นที่เก็บข้อมูล แต่ดูเหมือนว่าจะทำลาย Git git pullและฉันต้องการที่จะสามารถอัปเดตเพียงโดยการเรียก ฉันจะทำสิ่งนี้ได้อย่างไร
2244 git  repository  git-clone 

16
วิธีแก้ไขคอมมิทที่ระบุ?
ฉันมักจะส่งรายการข้อผูกพันเพื่อตรวจสอบ หากฉันมีข้อผูกพันต่อไปนี้: HEAD Commit3 Commit2 Commit1 ... git commit --amendฉันรู้ว่าฉันสามารถปรับเปลี่ยนหัวกระทำด้วย แต่ฉันจะแก้ไขCommit1ได้อย่างไรว่ามันไม่ได้HEADกระทำ

8
คุณจะผลักดันแท็กไปยังพื้นที่เก็บข้อมูลระยะไกลโดยใช้ Git ได้อย่างไร
ฉันได้โคลนที่เก็บ Git ระยะไกลไปยังแล็ปท็อปของฉันแล้วฉันต้องการเพิ่มแท็กดังนั้นฉันจึงวิ่ง git tag mytag master เมื่อฉันใช้งานgit tagแล็ปท็อปแท็กmytagจะปรากฏขึ้น จากนั้นฉันต้องการผลักดันสิ่งนี้ไปยังพื้นที่เก็บข้อมูลระยะไกลดังนั้นฉันมีแท็กนี้กับลูกค้าของฉันทั้งหมดดังนั้นฉันจึงเรียกใช้git pushแต่ฉันได้รับข้อความ: ทุกอย่างทันสมัย และถ้าฉันไปที่เดสก์ท็อปของฉันและเรียกใช้git pullแล้วgit tagไม่มีแท็กแสดง ฉันได้ลองทำการเปลี่ยนแปลงเล็กน้อยกับไฟล์ในโปรเจ็กต์จากนั้นกดไปที่เซิร์ฟเวอร์ หลังจากนั้นฉันสามารถดึงการเปลี่ยนแปลงจากเซิร์ฟเวอร์ไปยังคอมพิวเตอร์เดสก์ท็อปของฉันได้ แต่ก็ยังไม่มีแท็กเมื่อทำงานgit tagบนคอมพิวเตอร์เดสก์ท็อปของฉัน ฉันจะผลักแท็กของฉันไปยังที่เก็บข้อมูลระยะไกลเพื่อให้คอมพิวเตอร์ไคลเอนต์ทั้งหมดสามารถดูได้อย่างไร

20
Git ปฏิเสธที่จะรวมประวัติที่ไม่เกี่ยวข้องกับ rebase
ในระหว่างgit rebase origin/developmentข้อความแสดงข้อผิดพลาดต่อไปนี้จะแสดงจาก Git: fatal: refusing to merge unrelated histories Error redoing merge 1234deadbeef1234deadbeef เวอร์ชัน Git ของฉันคือ 2.9.0 มันใช้งานได้ดีในรุ่นก่อนหน้า ฉันจะดำเนินการต่อการลดลงนี้ต่อเนื่องเพื่อให้ประวัติศาสตร์ที่ไม่เกี่ยวข้องกับการบังคับธงแนะนำในรุ่นใหม่ได้อย่างไร
2146 git  rebase 

13
ฉันจะแสดงการเปลี่ยนแปลงที่จัดเตรียมไว้ได้อย่างไร
ฉันแสดงการเปลี่ยนแปลงเล็กน้อยเพื่อมุ่งมั่น; ฉันจะดูความแตกต่างของไฟล์ทั้งหมดที่จัดเตรียมไว้สำหรับการส่งครั้งต่อไปได้อย่างไร? ฉันรู้สถานะ gitแต่ฉันต้องการเห็นความแตกต่างที่เกิดขึ้นจริง - ไม่ใช่แค่ชื่อของไฟล์ที่ถูกจัดฉาก ฉันเห็นว่าหน้าคนgit-diff (1)พูดว่า git diff [--options] [-] […] แบบฟอร์มนี้คือการดูการเปลี่ยนแปลงที่คุณทำกับดัชนี (พื้นที่การจัดเตรียมสำหรับการส่งครั้งต่อไป) กล่าวอีกนัยหนึ่งความแตกต่างคือสิ่งที่คุณสามารถบอกคอมไพล์เพื่อเพิ่มในดัชนี แต่คุณยังไม่ได้ คุณสามารถจัดลำดับการเปลี่ยนแปลงเหล่านี้ได้โดยใช้ git-add (1) น่าเสียดายที่ฉันไม่เข้าใจเรื่องนี้ ต้องมีสายการบินเดียวที่มีประโยชน์ซึ่งฉันสามารถสร้างชื่อแทนได้ใช่ไหม
2138 git  diff  dvcs  git-diff  git-stage 

18
วิธีการเปลี่ยนผู้แต่งมอบอำนาจสำหรับหนึ่งกระทำเฉพาะ?
ฉันต้องการที่จะเปลี่ยนผู้เขียนของการกระทำที่เฉพาะเจาะจงหนึ่งในประวัติศาสตร์ มันไม่ใช่การกระทำสุดท้าย ฉันรู้เกี่ยวกับคำถามนี้ - ฉันจะเปลี่ยนผู้แต่งคอมมิทคอมได้อย่างไร? แต่ฉันกำลังคิดเกี่ยวกับบางสิ่งที่ฉันระบุความมุ่งมั่นโดยแฮชหรือแฮชสั้น
2108 git  git-commit 

18
แสดงไฟล์ที่มีการเปลี่ยนแปลงระหว่างการแก้ไขสองครั้ง
ฉันต้องการรวมสองสาขาที่ได้รับการแยกเป็นระยะเวลาหนึ่งและต้องการที่จะรู้ว่าไฟล์ใดได้รับการแก้ไข มาที่ลิงค์นี้: http://linux.yyz.us/git-howto.htmlซึ่งมีประโยชน์มาก เครื่องมือในการเปรียบเทียบสาขาที่ฉันเจอคือ: git diff master..branch git log master..branch git shortlog master..branch สงสัยว่ามีบางอย่าง "git status master .. สาขา" หรือไม่เพื่อดูไฟล์ที่แตกต่างระหว่างสองสาขาเท่านั้น โดยไม่ต้องสร้างเครื่องมือใหม่ฉันคิดว่านี่เป็นสิ่งที่ใกล้เคียงที่สุดที่คุณสามารถทำได้ในตอนนี้ (ซึ่งแน่นอนว่าจะแสดงซ้ำหากไฟล์ถูกแก้ไขมากกว่าหนึ่งครั้ง): git diff master..branch | grep "^diff" สงสัยว่ามีบางอย่างที่ฉันพลาดไปหรือไม่ ...
2105 git  branch  git-branch  git-diff 

13
อะไรคือวิธีที่ดีที่สุด (และปลอดภัยที่สุด) ในการผสานสาขา Git เข้ากับเจ้านาย
สาขาใหม่จากถูกสร้างขึ้นที่เราเรียกว่าmastertest มีผู้พัฒนาหลายคนที่มุ่งมั่นmasterหรือสร้างสาขาอื่น ๆ และรวมเข้าด้วยกันในmasterภายหลัง สมมติว่าการทำงานในtestคือการหลายวันและคุณต้องการอย่างต่อเนื่องเพื่อให้การปรับปรุงด้วยการกระทำภายในtestmaster ฉันจะทำจากgit pull origin mastertest คำถามที่ 1:นี่เป็นแนวทางที่ถูกต้องหรือไม่? นักพัฒนาคนอื่นสามารถทำงานกับไฟล์เดียวกันได้อย่างง่ายดายขณะที่ฉันทำงาน btw งานของฉันในการจะทำและผมพร้อมที่จะผสานมันกลับไปtest masterนี่คือสองวิธีที่ฉันนึกได้: A: git checkout test git pull origin master git push origin test git checkout master git pull origin test B: git checkout test git pull origin master git checkout master git merge test ฉันไม่ได้ใช้--rebaseเพราะจากความเข้าใจของฉันการรีบูตจะได้รับการเปลี่ยนแปลงจากmasterและสแต็คของฉันที่ด้านบนของมันดังนั้นมันสามารถเขียนทับการเปลี่ยนแปลงที่คนอื่นทำ คำถามที่ …

15
วิธีการ“ git clone” รวมถึง submodules?
ฉันพยายามที่จะใส่ submodule เข้าไปใน repo ปัญหาคือว่าเมื่อฉันโคลน repo ผู้ปกครองโฟลเดอร์ submodule ว่างเปล่าทั้งหมด มีวิธีใดบ้างที่git clone parent_repoจะทำให้ข้อมูลนั้นอยู่ในโฟลเดอร์ submodule ยกตัวอย่างเช่นhttp://github.com/cwolves/sequelize/tree/master/lib/ , nodejs-mysql-nativeชี้ที่ submodule Git ภายนอก แต่เมื่อฉันชำระเงินsequelizeโครงการโฟลเดอร์ที่ว่างเปล่า
1991 git  git-submodules 

13
จะแสดงรายการเฉพาะชื่อไฟล์ที่เปลี่ยนระหว่างสองคอมมิทได้อย่างไร?
ฉันมีความมุ่งมั่นใน repo ฉันต้องการดูรายการไฟล์ที่เปลี่ยนระหว่างการคอมมิทสองครั้ง - จาก SHA1 เป็น SHA2 ฉันควรใช้คำสั่งอะไร
1952 git  git-diff  git-show 

14
ดาวน์โหลดแท็กเฉพาะด้วย Git
ฉันกำลังพยายามหาวิธีที่ฉันสามารถดาวน์โหลดแท็กเฉพาะของที่เก็บ Git - เป็นรุ่นหนึ่งที่อยู่ด้านหลังรุ่นปัจจุบัน ฉันเห็นว่ามีแท็กสำหรับรุ่นก่อนหน้าในหน้าเว็บคอมไพล์ด้วยชื่อวัตถุของบางสิ่งบางอย่างเลขฐานสิบหกยาว แต่ชื่อรุ่นคือ " Tagged release 1.1.5" ตามไซต์ ฉันลองคำสั่งเช่นนี้ (เปลี่ยนชื่อ): git clone http://git.abc.net/git/abc.git my_abc และฉันได้รับบางสิ่งบางอย่าง - ไดเรกทอรีไดเรกทอรีย่อย ฯลฯ ถ้าเป็นพื้นที่เก็บข้อมูลทั้งหมดฉันจะหาเวอร์ชั่นที่ฉันค้นหาได้อย่างไร ถ้าไม่ฉันจะดาวน์โหลดเวอร์ชั่นนั้นได้อย่างไร
1941 git  git-clone  git-tag 

30
ฉันจะลบสาขา Git ทั้งหมดที่ถูกผสานได้อย่างไร
ฉันมีสาขา Git มากมาย ฉันจะลบสาขาที่รวมอยู่แล้วได้อย่างไร มีวิธีง่าย ๆ ในการลบทั้งหมดแทนที่จะลบทีละรายการหรือไม่

20
จะเรียกแฮชสำหรับการคอมมิทปัจจุบันได้อย่างไรใน Git?
ฉันต้องการที่จะรักษาความสามารถในการเชื่อมโยงการเปลี่ยนแปลง Git กับงานที่เก็บไว้ใน TFS ฉันได้เขียนเครื่องมือ (โดยใช้ hook จาก Git) ซึ่งฉันสามารถฉีดเจ้าหน้าที่ทำงานในข้อความของเซ็ตการแก้ไข Git อย่างไรก็ตามฉันต้องการเก็บตัวบ่งชี้ของ Git commit (the hash) ในฟิลด์ TFS workitem ที่กำหนดเอง วิธีนี้ฉันสามารถตรวจสอบ workitem ใน TFS และดูว่าการเปลี่ยนแปลง Git เกี่ยวข้องกับ workitem อย่างไร ฉันจะดึงแฮชจากการคอมมิทปัจจุบันจาก Git ได้อย่างไร?
1931 git  tfs  tfs-workitem  changeset 

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