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

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

6
Git ผสานกับการบังคับเขียนทับ
ฉันมีสาขาที่เรียกว่าdemoฉันต้องรวมกับmasterสาขา ฉันได้ผลลัพธ์ที่ต้องการด้วยคำสั่งต่อไปนี้: git pull origin demo git checkout master git pull origin master git merge demo git push origin master ข้อกังวลเดียวของฉันคือหากมีปัญหาในการผสานฉันต้องการบอกgitให้เขียนทับการเปลี่ยนแปลงในmasterสาขาโดยไม่ต้องแจ้งให้ฉันรวม โดยพื้นฐานแล้วการเปลี่ยนแปลงในdemoสาขาควรเขียนทับการเปลี่ยนแปลงในmasterสาขาโดยอัตโนมัติ ฉันมองไปรอบ ๆ มีตัวเลือกมากมาย แต่ฉันไม่ต้องการใช้โอกาสในการรวม
110 git  github  merge 

5
git: แสดงดัชนีความแตกต่างในข้อความคอมมิตเป็นข้อคิดเห็น
เมื่อgit commitเปิดตัวแก้ไขข้อความจะแสดงสถานะสั้น ๆ สิ่งนี้: # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # On branch master # Your branch is ahead of 'origin/master' by 26 commits. # # Changes to be committed: # (use …
109 git 

8
การรักษาสิทธิ์ของไฟล์ด้วย Git
ฉันต้องการควบคุมเวอร์ชันเว็บเซิร์ฟเวอร์ของฉันตามที่อธิบายไว้ใน การควบคุมเวอร์ชันสำหรับเว็บเซิร์ฟเวอร์ของฉันโดยการสร้าง git repo จาก/var/www directoryไฟล์. ความหวังของฉันคือจากนั้นฉันจะสามารถส่งเนื้อหาเว็บจากเซิร์ฟเวอร์ dev ของเราไปยัง github ดึงไปยังเซิร์ฟเวอร์ที่ใช้งานจริงของเราและใช้เวลาที่เหลือทั้งวันที่สระว่ายน้ำ เห็นได้ชัดว่าข้อบกพร่องในแผนของฉันคือ Git จะไม่เคารพสิทธิ์ของไฟล์ (ฉันยังไม่ได้ลองอ่านตอนนี้เท่านั้น) ฉันเดาว่านี่สมเหตุสมผลแล้วที่กล่องต่างๆมีแนวโน้มที่จะมีการตั้งค่าผู้ใช้ / กลุ่มที่แตกต่างกัน แต่ถ้าฉันต้องการบังคับสิทธิ์ในการเผยแพร่เมื่อรู้ว่าเซิร์ฟเวอร์ของฉันได้รับการกำหนดค่าเหมือนกันฉันมีตัวเลือกใดบ้าง? หรือมีวิธีที่ง่ายกว่าในการเข้าถึงสิ่งที่ฉันพยายามทำ?


26
คำเตือน Git Checkout: ไม่สามารถยกเลิกการเชื่อมโยงไฟล์ได้รับอนุญาตถูกปฏิเสธ
ฉันทราบว่ามีปัญหาคล้ายกันเกี่ยวกับคอมไพล์ที่เกี่ยวข้องกับคำเตือน 'ไม่สามารถยกเลิกการลิงก์' แต่ฉันไม่สามารถใช้งานได้ ความแตกต่างที่สำคัญคือสิ่งนี้เกิดขึ้นเมื่อฉันไม่ได้จัดการกับโมดูลย่อย แต่อย่างใด (ฉันไม่เคยจัดการกับมันมาก่อน) ฉันสร้างสาขาที่เรียกว่า 'อัพเกรด' ลบไฟล์เฟรมเวิร์กเก่าของฉันและคัดลอกในไฟล์ใหม่ ฉันใช้ git add -A จากนั้นก็ทำทุกอย่าง เมื่อฉันพยายามชำระเงินสาขาลำต้นมันตอบสนองด้วยข้อผิดพลาดต่อไปนี้: warning: unable to unlink requirements/views/sk/index.php: Permission denied warning: unable to unlink requirements/views/sv/index.php: Permission denied warning: unable to unlink requirements/views/zh/index.php: Permission denied warning: unable to unlink requirements/views/zh_cn/index.php: Permission denied warning: unable to unlink requirements/views/zh_tw/index.php: Permission denied …
109 git 


6
git - สาขาของคุณอยู่ข้างหน้า 'origin / master' โดย 1 คอมมิต
ฉันเป็นมือใหม่ในคอมไพล์และฉันกำลังทำงานกับคอมไพล์ ฉันเพิ่มไฟล์บางไฟล์ในคอมไพล์: git add <file1> git add <file2> จากนั้นฉันต้องการผลักดันให้มีการตรวจสอบ แต่ฉันเข้าใจผิด git commit ดังนั้นไฟล์ที่ฉันเปลี่ยนไปจะไม่ถูกตรวจสอบ ตอนนี้ถ้าฉันป้อนคำสั่ง: git status มันบอกว่า # On branch master # Your branch is ahead of 'origin/master' by 1 commit. # nothing to commit (working directory clean) ฉันต้องการคืนค่าคอมมิตนั้นและต้องการส่งไฟล์เหล่านั้นเพื่อตรวจสอบแทนที่จะคอมมิต ใครช่วยบอกฉันหน่อยได้ไหมว่าฉันทำได้อย่างไร
109 git  push  commit 

7
.gitignore ไม่ละเว้น .idea path
ฉันขาดอะไรไปที่ต้องทำเพื่อที่gitจะไม่สนใจ.idea/เส้นทางของฉัน ctote@ubuntu:~/dev/1$ git status On branch master Your branch is up-to-date with 'origin/master'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: .idea/.name modified: .idea/misc.xml modified: .idea/modules.xml modified: .idea/vcs.xml modified: .idea/workspace.xml modified: …
109 git  gitignore 

5
ปิดการใช้งานการแปลง EOL ของ git
ฉันพยายามทำให้คอมไพล์ไม่เปลี่ยนการสิ้นสุดบรรทัดสำหรับการดำเนินการใด ๆ น่าเสียดายที่ดูเหมือนว่าจะทำเช่นนั้นไม่สำคัญอะไร ฉันได้ลดมันลงเป็นกรณีทดสอบต่อไปนี้ซึ่งมีกลไกต่างๆในการปิดใช้งานพฤติกรรมนี้มากที่สุดเท่าที่ฉันจะพบได้ เริ่มต้นด้วยสองเครื่อง (คอมพิวเตอร์ Windows = A, คอมพิวเตอร์ Linux = B) ในทั้งสองเครื่อง: git config --global core.autocrlf false บนทั้งสองเครื่อง: git config --global core.eol crlf(ในกรณีที่) สร้างที่เก็บใหม่บน A. จากโฟลเดอร์ว่าง: git init --shared(จากนั้นยกเลิกการซ่อน.gitไดเร็กทอรีที่สร้างขึ้น) สร้างไฟล์ใหม่.gitignoreในที่เก็บ สร้างไฟล์ใหม่.gitattributesในที่เก็บด้วยบรรทัดเดียว:* -text git add .แล้วgit commit -m "initial commit"การทำงานรอบเช่นนี้ git branch master_recv เพิ่มรีโมท สร้างไฟล์ใหม่document.txtในที่เก็บที่มี CRLF กระทำ: git add …
109 git 

2
Git: ตั้งค่า user.name และ user.email ในเครื่องสำหรับแต่ละ repo
ฉันกำลังทำงานใน 2 โปรเจ็กต์ซึ่งคาดว่าฉันจะกำหนดค่าชื่อผู้ใช้และอีเมลในเครื่องของฉันด้วยข้อมูลที่แตกต่างกันเมื่อฉันพุชไป เพราะฉันกำลังอัปเดตการกำหนดค่าตลอดเวลาเช่น: git config --local user.email "namelastname@domain.com" เนื่องจากเป็นที่เก็บที่แตกต่างกันมีวิธีที่ฉันสามารถกำหนดอีเมลภายในสำหรับแต่ละที่เก็บได้หรือไม่ อาจจะอยู่ใน.gitconfig?
109 git  github 

5
วิธีสร้างสาขาจากการคอมมิตเฉพาะในสาขาต่างๆ
ฉันได้ทำการคอมมิตหลายครั้งในสาขาหลักแล้วรวมเข้ากับสาขา dev ฉันต้องการสร้างสาขาจากการคอมมิตเฉพาะในสาขา dev ซึ่งถูกกำหนดครั้งแรกในสาขาหลัก ฉันใช้คำสั่ง: git checkout dev git branch <branch name> <commit id> อย่างไรก็ตามสิ่งนี้จะสร้างสาขาจากสาขาหลักไม่ใช่สาขา dev ที่ฉันคาดไว้ รหัสการคอมมิตจะเหมือนกันในสาขาหลักและสาขาการพัฒนา ดังนั้นฉันจะแยกแยะรหัสคอมมิตเดียวกันในสาขาอื่นได้อย่างไร PS: ฉันสร้างตัวอย่างใน github ที่นี่https://github.com/RolandXu/test_for_branch ฉันใช้คำสั่ง: git checkout dev git branch test 07aeec983bfc17c25f0b0a7c1d47da8e35df7af8 สิ่งที่ฉันคาดหวังคือสาขาทดสอบมี aa.txt bb.txt cc.txt อย่างไรก็ตามสาขาการทดสอบประกอบด้วย aa.txt และ cc.txt เท่านั้น เป็นไปได้มากว่าจะสร้างสาขาจากสาขาหลัก
109 git  git-branch 

11
วิธีกำหนดค่า git push เพื่อตั้งค่า upstream โดยอัตโนมัติโดยไม่ใช้ -u?
ฉันต้องการgit push originตั้งค่าการอ้างอิงต้นน้ำโดยอัตโนมัติเมื่อฉันพุชสาขาที่สร้างในเครื่องเป็นครั้งแรก ฉันรู้เกี่ยวกับgit push -uแต่ฉันไม่ต้องการที่จะคิดว่าฉันเคยใช้มา-uก่อนหรือไม่หรือตั้งค่าการอ้างอิงต้นน้ำ กล่าวอีกนัยหนึ่งฉันต้องการgit pushให้มีผลโดยอัตโนมัติgit push -uในการผลักดันสาขาใด ๆ ที่ยังไม่มีต้นน้ำ เป็นไปได้หรือไม่ หากต้องใช้นามแฝงหรือสคริปต์ยูทิลิตี้ก็ไม่เป็นไร
109 git 

4
อะไรคือความแตกต่างระหว่าง IntelliJ's Shelve และ Git stash?
IntelliJ รองรับ git stashes เช่นเดียวกับคำสั่งที่สร้างขึ้นเองใน Shelve สิ่งเหล่านี้ดูเหมือนเกือบจะเหมือนกันในด้านวัตถุประสงค์และประโยชน์ใช้สอย อะไรคือความแตกต่างระหว่างพวกเขา?

13
git-svn ไม่ใช่คำสั่ง git?
ในขณะที่พยายามดึงข้อมูล svn เก่าของโครงการภายใต้การควบคุม git ฉันพบปัญหาที่น่าสนใจ เมื่อใดก็ตามที่ฉันเรียกใช้git svnฉันได้รับข้อผิดพลาดว่าไม่ใช่คำสั่ง git แต่มีเอกสารประกอบที่ฉันสามารถดึงขึ้นมาgit helpใช้ได้ มีบางอย่างผิดปกติกับการติดตั้งของฉันหรือฉันพลาดอะไรบางอย่างที่นี่? แก้ไข: ฉันควรพูดถึงว่าฉันใช้ msysGit เวอร์ชัน 1.6.1.9.g97c34 ใน Windows XP และข้อผิดพลาดที่ฉันได้รับคือ: $ git svn git: 'svn' ไม่ใช่ไฟล์ คำสั่ง git ดู 'git --help' คุณหมายถึงหนึ่งในนี้หรือไม่? fsck แสดง
108 svn  git  git-svn 

4
อะไรคือความแตกต่างระหว่าง Git ที่ละเว้นไดเรกทอรีและไดเรกทอรี / *
ฉันสับสนเกี่ยวกับวิธีที่ถูกต้องในการละเว้นเนื้อหาของไดเร็กทอรีใน git คืออะไร สมมติว่าฉันมีโครงสร้างไดเร็กทอรีต่อไปนี้: my_project |--www |--1.txt |--2.txt |--.gitignore อะไรคือความแตกต่างระหว่างการใส่สิ่งนี้: www และนี่? www/* เหตุผลที่ฉันถามคำถามนี้คือใน git หากไดเร็กทอรีว่างเปล่า git จะไม่รวมไดเร็กทอรีว่างดังกล่าวไว้ในที่เก็บ ดังนั้นฉันจึงลองวิธีแก้ปัญหาที่เพิ่มไฟล์. gitkeep พิเศษภายใต้ไดเร็กทอรีเพื่อไม่ให้ว่างเปล่า เมื่อฉันลองวิธีแก้ปัญหานั้นหากอยู่ในไฟล์. gitignore ฉันเขียนดังนี้: www !*.gitkeep ไม่ได้ผล (ความตั้งใจของฉันคือละเว้นเนื้อหาทั้งหมดภายใต้ www แต่เก็บไดเรกทอรีไว้) แต่ถ้าฉันลองทำสิ่งต่อไปนี้: www/* !*.gitkeep แล้วมันได้ผล! ดังนั้นฉันคิดว่ามันต้องมีความแตกต่างบางอย่างระหว่างสองแนวทางนี้

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