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

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

15
วิธีการย้ายไฟล์จาก repit git หนึ่งไปยังอีก (ไม่ใช่โคลน), การเก็บประวัติ
ที่เก็บ Git ของเราเริ่มต้นจากส่วนหนึ่งของที่เก็บมอนสเตอร์ SVN เดียวที่แต่ละโครงการมีต้นไม้เป็นของตัวเองเช่น: project1/branches /tags /trunk project2/branches /tags /trunk svn mvเห็นได้ชัดว่ามันเป็นเรื่องง่ายสวยที่จะย้ายไฟล์จากที่หนึ่งไปยังอีกด้วย แต่ใน Git แต่ละโครงการอยู่ในพื้นที่เก็บข้อมูลของตัวเองและวันนี้ผมก็ถามว่าจะย้ายไดเรกทอรีย่อยจากไปproject2 project1ฉันทำอะไรเช่นนี้ $ git clone project2 $ cd project2 $ git filter-branch --subdirectory-filter deeply/buried/java/source/directory/A -- --all $ git remote rm origin # so I don't accidentally overwrite the repo ;-) $ mkdir -p deeply/buried/different/java/source/directory/B $ …
483 git  repository 

16
วิธีการกำจัดคอมไพล์ทั้งหมดมุ่งมั่นที่เป็นหนึ่งเดียว?
คุณจะสควอชที่เก็บข้อมูลทั้งหมดของคุณลงไปที่การคอมมิทครั้งแรกได้อย่างไร? ฉันสามารถลดการกระทำแรกได้ แต่นั่นทำให้ฉันมีข้อผูกพัน 2 ข้อ มีวิธีในการอ้างอิงการกระทำก่อนที่จะมีคนแรก?

14
วิธีที่ดีที่สุดในการ“ git clone” ในโฟลเดอร์ที่มีอยู่คืออะไร?
ฉันมีสำเนาการทำงานของโครงการโดยไม่มีข้อมูลเมตาควบคุมแหล่งที่มา ตอนนี้ฉันต้องการทำคอมไพล์ git-clone ในโฟลเดอร์นี้และทำการเปลี่ยนแปลงในเครื่องของฉัน git-clone ไม่อนุญาตให้ฉันโคลนเข้าไปในโฟลเดอร์ที่มีอยู่ การปฏิบัติที่ดีที่สุดที่นี่คืออะไร?
479 git 

7
ผสาน (กับสควอช) การเปลี่ยนแปลงทั้งหมดจากสาขาอื่นเป็นการกระทำเดียว
ใน Git มีวิธีใดที่จะรวมการเปลี่ยนแปลงทั้งหมดจากสาขาหนึ่งไปยังอีกสาขาหนึ่ง แต่สควอชไปเป็นคอมมิชชันเดียวในเวลาเดียวกันได้หรือไม่? ฉันมักจะทำงานในคุณสมบัติใหม่ในสาขาที่แยกต่างหากและจะกระทำ / ผลักดันเป็นประจำ - ส่วนใหญ่สำหรับการสำรองข้อมูลหรือถ่ายโอนสิ่งที่ฉันกำลังทำงานกับเครื่องอื่น ความมุ่งมั่นเหล่านั้นส่วนใหญ่พูดว่า "Feature xxx WIP" หรือสิ่งที่ซ้ำซ้อน เมื่องานนั้นเสร็จสิ้นและฉันต้องการที่จะรวมสาขา WIP กลับไปเป็นหลักฉันต้องการที่จะยกเลิกการกระทำกลางทั้งหมดเหล่านั้นและเพียงแค่มีความมุ่งมั่นที่สะอาดเพียงครั้งเดียว มีวิธีง่าย ๆ ในการทำเช่นนี้? อีกวิธีหนึ่งคำสั่งที่ลบล้างการคอมมิททั้งหมดในสาขาตั้งแต่จุดที่มันถูกแยกออก?
479 git 

15
วิธีนำเข้าที่เก็บ Git ที่มีอยู่ไปยังที่อื่น
ฉันมีพื้นที่เก็บข้อมูล Git ในโฟลเดอร์ที่เรียกว่าXXXและฉันมีสอง Git พื้นที่เก็บข้อมูลที่เรียกว่าYYY ฉันต้องการที่จะนำเข้าXXXพื้นที่เก็บข้อมูลลงในYYYพื้นที่เก็บข้อมูลเป็นไดเรกทอรีย่อยชื่อZZZและเพิ่มทุกXXXประวัติการเปลี่ยนแปลง 'เพื่อYYY โครงสร้างโฟลเดอร์ก่อน: ├── XXX │ ├── .git │ └── (project files) └── YYY ├── .git └── (project files) โครงสร้างโฟลเดอร์หลัง: YYY ├── .git <-- This now contains the change history from XXX ├── ZZZ <-- This was originally XXX │ └── (project files) └── (project …
476 git  merge  git-merge 

10
จะกลับไปใช้การคอมมิทล่าสุดได้อย่างไรหลังจากตรวจสอบการคอมมิชชันก่อนหน้า
บางครั้งฉันตรวจสอบรหัสรุ่นก่อนหน้าเพื่อตรวจสอบหรือทดสอบ ฉันได้เห็นคำแนะนำเกี่ยวกับสิ่งที่ต้องทำถ้าฉันต้องการแก้ไขข้อผูกพันก่อนหน้านี้ - แต่สมมติว่าฉันไม่ทำการเปลี่ยนแปลงใด ๆ หลังจากทำเสร็จgit checkout HEAD^แล้วฉันจะกลับไปที่ปลายกิ่งได้อย่างไร .. git logไม่แสดงให้ฉันเห็นถึงความมุ่งมั่นล่าสุดของ SHA อีกต่อไป

10
git-diff เพื่อละเว้น ^ M
ในโครงการที่ไฟล์บางไฟล์มี ^ M เป็นตัวคั่นบรรทัดใหม่ เห็นได้ชัดว่าการกระจายไฟล์เหล่านี้เป็นไปไม่ได้เนื่องจาก git-diff เห็นว่าไฟล์ทั้งหมดเป็นเพียงบรรทัดเดียว หนึ่งแตกต่างจากรุ่นก่อนหน้าอย่างไร มีตัวเลือกเช่น "ถือ ^ M เป็นบรรทัดใหม่เมื่อแตกต่าง" หรือไม่? prompt> git-diff "HEAD^" -- MyFile.as diff --git a/myproject/MyFile.as b/myproject/MyFile.as index be78321..a393ba3 100644 --- a/myproject/MyFile.cpp +++ b/myproject/MyFile.cpp @@ -1 +1 @@ -<U+FEFF>import flash.events.MouseEvent;^Mimport mx.controls.*;^Mimport mx.utils.Delegate \ No newline at end of file +<U+FEFF>import flash.events.MouseEvent;^Mimport mx.controls.*;^Mimport mx.utils.Delegate \ …
474 git  diff  newline  git-diff 

9
การเปลี่ยนตัวพิมพ์ใหญ่ของชื่อไฟล์ใน Git
ฉันกำลังพยายามเปลี่ยนชื่อไฟล์ให้มีตัวพิมพ์ใหญ่ต่างจากที่เคยเป็นมา: git mv src/collision/b2AABB.js src/collision/B2AABB.js fatal: destination exists, source=src/collision/b2AABB.js, destination=src/collision/B2AABB.js อย่างที่คุณเห็น Git มีความเหมาะสมมากกว่านี้ ฉันลองเปลี่ยนชื่อโดยใช้mvคำสั่งเก่าธรรมดาเช่นกัน แต่ Git ไม่รับการเปลี่ยนชื่อ (เป็นเปลี่ยนชื่อหรือเป็นไฟล์ที่ไม่ได้ติดตามใหม่) ฉันจะเปลี่ยนไฟล์ให้มีตัวพิมพ์ใหญ่แตกต่างจากชื่อเดียวกันได้อย่างไร ฉันใช้ Mac OS X v10.7.3 (Lion) พร้อม Git 1.7.9.1 โดยใช้Z shell (zsh) 4.3.15

25
“ git pull --all” สามารถอัพเดทสาขาในประเทศของฉันทั้งหมดได้หรือไม่?
ฉันมักจะมีสาขาระยะไกลอย่างน้อย 3 แห่ง: ปรมาจารย์การแสดงละครและการผลิต ฉันมี 3 สาขาท้องถิ่นที่ติดตามสาขาระยะไกลเหล่านั้น การอัปเดตสาขาในประเทศของฉันทั้งหมดน่าเบื่อ: git fetch --all git rebase origin/master git checkout staging git rebase origin/staging git checkout production git rebase origin/production ฉันชอบที่จะสามารถทำ "git pull -all" แต่ฉันก็ไม่สามารถทำให้มันทำงานได้ ดูเหมือนว่าจะ "ดึงข้อมูล - ทั้งหมด" จากนั้นอัปเดต (กรอไปข้างหน้าหรือผสาน) สาขาการทำงานปัจจุบัน แต่ไม่ใช่สาขาท้องถิ่นอื่น ๆ ฉันยังคงติดสลับไปยังแต่ละสาขาในพื้นที่และอัปเดตด้วยตนเอง
473 git 

12
ไม่มีการขึ้นบรรทัดใหม่ท้ายไฟล์
เมื่อทำgit diffมันบอกว่า"ไม่มีการขึ้นบรรทัดใหม่ที่จุดสิ้นสุดของไฟล์" "ไม่มีการขึ้นบรรทัดใหม่ในตอนท้ายของไฟล์" ตกลงไม่มีบรรทัดใหม่ที่ท้ายไฟล์ เรื่องใหญ่อะไร ข้อความสำคัญอะไรและมันพยายามบอกอะไรเรา
472 git  git-svn 

9
ดูการเปลี่ยนแปลงในไฟล์ที่ระบุโดยใช้ git
ฉันรู้ว่าฉันสามารถใช้git diffคำสั่งเพื่อตรวจสอบการเปลี่ยนแปลง แต่เท่าที่ฉันเข้าใจมันเป็นไดเรกทอรีตาม ซึ่งหมายความว่าจะให้การเปลี่ยนแปลงทั้งหมดของไฟล์ทั้งหมดในไดเรกทอรีปัจจุบัน ฉันจะตรวจสอบเฉพาะการเปลี่ยนแปลงในไฟล์เดียวได้อย่างไร ไฟล์พูดว่าฉันมีการเปลี่ยนแปลงfile_1.rb, file_2.rb, ... , แต่ผมสนใจเฉพาะในการเปลี่ยนแปลงในแฟ้มfile_N.rb file_2.rbฉันจะตรวจสอบการเปลี่ยนแปลงเหล่านี้ได้อย่างไร (ก่อนที่จะส่งมอบ)
472 git  git-svn 

4
ฉันจะผลักดันสาขา Git ท้องถิ่นไปยังสาขาหลักในระยะไกลได้อย่างไร
ฉันมีสาขาที่เรียกว่าพัฒนาใน repo ท้องถิ่นของฉันและฉันต้องการตรวจสอบให้แน่ใจว่าเมื่อฉันผลักมันไปที่จุดเริ่มต้นมันจะถูกรวมเข้ากับต้นกำเนิด / ต้นแบบ ปัจจุบันเมื่อฉันกดมันจะถูกเพิ่มไปยังสาขาพัฒนาระยะไกล ฉันจะทำสิ่งนี้ได้อย่างไร

16
ลบแท็ก git โลคัลที่ไม่อยู่บนที่เก็บรีโมตอีกต่อไป
เราใช้แท็กในคอมไพล์เป็นส่วนหนึ่งของกระบวนการปรับใช้ของเรา ในบางครั้งเราต้องการล้างแท็กเหล่านี้โดยลบออกจากที่เก็บระยะไกลของเรา ตรงไปตรงมานี้ ผู้ใช้รายหนึ่งลบโลคัลแท็กและรีโมตแท็กในคำสั่งชุดเดียว เรามีเชลล์สคริปต์เล็กน้อยที่รวมทั้งสองขั้นตอน ตอนนี้ผู้ใช้ที่ 2 (ที่ 3, ที่ 4, ... ) มีแท็กท้องถิ่นที่ไม่ปรากฏบนรีโมทอีกต่อไป ฉันกำลังมองหาคำสั่งที่คล้ายกับgit remote prune originที่ล้างสาขาการติดตามในพื้นที่ซึ่งสาขาระยะไกลถูกลบไปแล้ว git tag -lอีกวิธีหนึ่งคือคำสั่งง่ายๆที่จะแท็กรายการระยะไกลสามารถนำมาใช้เพื่อเปรียบเทียบกับแท็กท้องถิ่นกลับผ่านทาง
468 git  git-tag 

11
Git checkout: การอัพเดทพา ธ ไม่สามารถใช้งานได้กับการสลับแบรนช์
ปัญหาของฉันเป็นที่เกี่ยวข้องกับข้อผิดพลาดร้ายแรง Git เมื่อมีการเปลี่ยนสาขา ฉันพยายามดึงสาขาระยะไกลด้วยคำสั่ง git checkout -b local-name origin/remote-name แต่ฉันได้รับข้อความแสดงข้อผิดพลาดนี้: ร้ายแรง: เช็คเอาต์ git: การอัพเดทพา ธ ไม่สามารถใช้งานได้กับการสลับแบรนช์ คุณตั้งใจจะเช็คเอาต์ 'Origin / remote-name' ซึ่งไม่สามารถแก้ไขได้ตามที่มอบหมาย? ถ้าฉันสร้างสาขาด้วยตนเองแล้วดึงสาขาระยะไกลมันใช้งานได้เช่นเดียวกับการสร้างโคลนใหม่และตรวจสอบสาขา เหตุใดมันจึงไม่ทำงานบนที่เก็บที่ฉันทำงานด้วย

6
ดึงคำขอกับคำขอรวม
อะไรคือความแตกต่างระหว่างคำขอดึงและคำขอรวม ใน Github เป็นคำขอการดึงและใน GitLab เป็นคำขอรวม ... มีความแตกต่างระหว่างทั้งสองนี้ไหม
466 git  github  gitlab 

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