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

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

9
คำสั่ง Git เพื่อแสดงไฟล์เฉพาะที่ถูกละเว้นโดย. gitignore
ฉันเริ่มเปียกด้วย Git และมีปัญหาต่อไปนี้: ต้นไม้ต้นกำเนิดโครงการของฉัน: / | +--src/ +----refs/ +----... | +--vendor/ +----... ฉันมีรหัส (ปัจจุบัน MEF) ในสาขาผู้จัดจำหน่ายของฉันที่ฉันจะรวบรวมที่นั่นแล้วย้ายการอ้างอิงไป/src/refsยังที่ที่โครงการเลือกพวกเขามา ปัญหาของฉันเป็นที่ฉันมีของฉัน.gitignoreชุดที่จะไม่สนใจและ*.dll *.pdbฉันสามารถทำได้git add -f bar.dllเพื่อบังคับให้เพิ่มไฟล์ที่ถูกละเว้นซึ่งก็โอเคปัญหาคือฉันไม่สามารถหารายการไฟล์ที่มีอยู่ที่ถูกละเว้นได้ ฉันต้องการแสดงรายการไฟล์ที่ถูกละเว้นเพื่อให้แน่ใจว่าฉันจะไม่ลืมที่จะเพิ่ม ฉันอ่าน man page git ls-filesแล้วและไม่สามารถใช้งานได้ ดูเหมือนว่าฉันgit ls-files --exclude-standard -iควรทำในสิ่งที่ฉันต้องการ ฉันพลาดอะไรไป
645 git  ignore 

8
วิธีแปลงไดเร็กทอรีที่ไม่ว่างเปล่าไปเป็นไดเร็กทอรีการทำงาน Git และส่งไฟล์ไปยังที่เก็บแบบรีโมต
ฉันมีไดเรกทอรีที่ไม่ว่างเปล่า (เช่น / etc / something) พร้อมไฟล์ที่ไม่สามารถเปลี่ยนชื่อย้ายหรือลบได้ ฉันต้องการตรวจสอบไดเรกทอรีนี้เป็น git ในสถานที่ ฉันต้องการที่จะสามารถผลักดันสถานะของพื้นที่เก็บข้อมูลนี้ไปยังพื้นที่เก็บข้อมูลระยะไกล (บนเครื่องอื่น) โดยใช้ "git push" หรือสิ่งที่คล้ายกัน นี่เป็นเรื่องเล็กน้อยโดยใช้การโค่นล้ม (ปัจจุบันเราใช้การโค่นล้ม) โดยใช้: svn mkdir <url> -m <msg> cd <localdir> svn co <url> . svn add <files etc> svn commit -m <msg> อะไรคือ git ที่เทียบเท่ากัน? ฉันสามารถ "git clone" ไปยังไดเรกทอรีว่างได้หรือไม่และย้ายไดเรกทอรี. git และทำงานทุกอย่างได้หรือไม่
644 git 


2
เหตุใด git จึงทำการผสานการกรอไปข้างหน้าอย่างรวดเร็ว
มาจาก Mercurial ฉันใช้กิ่งไม้เพื่อจัดระเบียบคุณสมบัติ โดยธรรมชาติฉันต้องการเห็นกระบวนการทำงานนี้ในประวัติศาสตร์ของฉันด้วย ฉันเริ่มโครงการใหม่โดยใช้คอมไพล์และทำฟีเจอร์แรกเสร็จ เมื่อทำการรวมคุณสมบัติฉันรู้ว่า git ใช้การกรอไปข้างหน้านั่นคือใช้การเปลี่ยนแปลงของฉันโดยตรงกับสาขาหลักถ้าเป็นไปได้และลืมเกี่ยวกับสาขาของฉัน ดังนั้นการคิดในอนาคต: ฉันเป็นคนเดียวที่ทำงานในโครงการนี้ ถ้าฉันใช้วิธีการเริ่มต้นของ git (การรวมกันอย่างรวดเร็ว) ประวัติของฉันจะส่งผลให้เกิดสาขายักษ์ใหญ่แห่งหนึ่ง ไม่มีใครรู้ว่าฉันใช้สาขาแยกสำหรับทุกฟีเจอร์เพราะในที่สุดฉันก็จะมีเพียงปรมาจารย์ยักษ์นั้น จะไม่ดูไม่เป็นมืออาชีพ? ด้วยเหตุผลนี้ฉันไม่ต้องการรวมการกรอไปข้างหน้าอย่างรวดเร็วและมองไม่เห็นสาเหตุที่เป็นค่าเริ่มต้น มีอะไรดีเกี่ยวกับมัน

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

17
ฉันจะป้องกัน 'git diff' จากการใช้เพจเจอร์ได้อย่างไร
มีสวิตช์บรรทัดคำสั่งเพื่อส่งไปยังgit diffและคำสั่งอื่น ๆ ที่ใช้lessเพจเจอร์ตามค่าเริ่มต้นหรือไม่? ฉันรู้ว่าฉันสามารถไปป์กับ cat ได้ แต่นั่นเป็นการลบการเน้นไวยากรณ์ทั้งหมด ฉันรู้ว่าฉันสามารถตั้งค่าวิทยุติดตามตัวใน. gitconfig ทั่วโลกเพื่อ cat โดยGITPAGER=cat(หรืออะไรทำนองนั้น); แต่บางครั้งฉันอยากมีเพจเจอร์ (ขึ้นอยู่กับขนาดของดิฟ) แต่ฉันต้องการสวิตช์บรรทัดคำสั่งหากมีหนึ่ง; และฉันไม่สามารถหามันผ่านหน้าคน
640 git 

12
ลบ repo ที่มีการแยกจาก GitHub
ฉันเริ่มต้นด้วย git และ GitHub และมีโครงการที่ฉันดูบน GitHub ฉันคลิกโดยไม่ตั้งใจเพื่อแยกมัน ตอนนี้มันดูเหมือนเป็นโครงการใหม่สำหรับฉัน ฉันมีข้อสงสัยเกี่ยวกับมัน ฉันรู้ว่าการกระทำหรือทำสิ่งอื่น ๆ กับ repo ที่แยกจากกันของฉันนั้นจะได้รับการอัปเดต แต่รหัสที่อัปเดตจะมีผลเฉพาะหลังจากผู้สร้างโครงการร้องขอการดึง ขวา? ถ้าฉันไปที่แผง admin บน GitHub มีตัวเลือกลบ หากฉันลบมันเป็นตัวเลือกด้านบนจะมีผลกระทบกับสิ่งเดิมหรือไม่? ฉันต้องการลบ ถึงตอนนี้ฉันแค่ศึกษารหัสและไม่จำเป็นต้องใช้ส้อม
635 git  github 

30
การพุชไปยัง Git ที่ส่งคืนรหัสข้อผิดพลาด 403 ร้ายแรง: คำขอ HTTP ล้มเหลว
ฉันสามารถโคลนสำเนาของ repo นี้ผ่านการรับรองความถูกต้อง HTTPS ฉันทำไปแล้วและต้องการที่จะผลักดันกลับไปที่เซิร์ฟเวอร์ GitHub ใช้ Cygwin บน Windows 7 x64 C:\cygwin\home\XPherior\Code\lunch_call>git push Password: error: The requested URL returned error: 403 while accessing https://MichaelDrog alis@github.com/derekerdmann/lunch_call.git/info/refs fatal: HTTP request failed ตั้งค่าด้วยโหมด verbose ฉันยังคงงงงวยสวย C:\cygwin\home\XPherior\Code\lunch_call>set GIT_CURL_VERBOSE=1 C:\cygwin\home\XPherior\Code\lunch_call>git push Password: * Couldn't find host github.com in the _netrc file; using defaults * …
634 git  github  dvcs 

19
ฉันจะแสดงรายการสาขาระยะไกลทั้งหมดใน Git 1.7+ ได้อย่างไร
ฉันลองgit branch -rแล้ว แต่นั่นแสดงเฉพาะสาขารีโมตที่ฉันติดตามในเครื่อง ฉันจะค้นหารายชื่อผู้ที่ฉันไม่ได้ทำอย่างไร (ไม่สำคัญสำหรับฉันว่าคำสั่งจะแสดงรายการรีโมตทั้งหมดหรือเฉพาะที่ไม่ได้ติดตาม)

30
วิธีแก้ไขข้อผิดพลาดการอนุญาต (publickey) เมื่อใช้ Git
ฉันบน Mac gitเสือดาวหิมะและฉันเพียงแค่ติดตั้ง ฉันแค่พยายาม git clone git@thechaw.com:cakebook.git แต่นั่นทำให้ฉันเกิดข้อผิดพลาด: Initialized empty Git repository in `/Users/username/Documents/cakebook/.git/` Permission denied (publickey). fatal: The remote end hung up unexpectedly ฉันพลาดอะไรไป ฉันได้ลองทำssh-keygenโดยไม่ใส่ข้อความรหัสผ่าน แต่ยังมีข้อผิดพลาดเดิม
631 git  ssh  ssh-keys  public-key 

12
Git ดึงสาขาจาก GitHub
ฉันมีโครงการที่มีหลายสาขา ฉันผลักพวกเขาไปที่GitHubและตอนนี้มีคนอื่นกำลังทำงานในโครงการที่ฉันต้องดึงสาขาของพวกเขาจาก GitHub มันทำงานได้ดีในระดับปริญญาโท xyzแต่บอกว่าคนที่สร้างสาขา ฉันจะดึงสาขาxyzจาก GitHub และรวมเข้าxyzกับสาขาของฉันได้localhostอย่างไร ฉันมีคำตอบที่นี่จริง ๆ : ผลักและดึงกิ่งก้านใน Git แต่ฉันได้รับข้อผิดพลาด "! [ถูกปฏิเสธ]" และบางอย่างเกี่ยวกับ "ไม่ไปข้างหน้าอย่างเร็ว" ข้อเสนอแนะใด ๆ
631 git  merge  branch  github  pull 

15
ผสานอัปเดตและดึงกิ่ง Git โดยไม่ต้องใช้การชำระเงิน
ฉันทำงานในโครงการที่มี 2 สาขาคือ A และ B โดยปกติฉันทำงานในสาขา A และรวมสิ่งต่าง ๆ จากสาขา B สำหรับการรวมฉันมักจะทำ: git merge origin/branchB อย่างไรก็ตามฉันต้องการเก็บสำเนา B สาขาในท้องที่ด้วยเนื่องจากฉันอาจตรวจสอบสาขาเป็นครั้งคราวโดยไม่รวมกับสาขา A ของฉันก่อนสำหรับสิ่งนี้ฉันจะทำ: git checkout branchB git pull git checkout branchA มีวิธีการข้างต้นในคำสั่งเดียวและโดยไม่ต้องสลับสาขาไปมา? ฉันควรจะใช้git update-refเพื่อสิ่งนั้นหรือไม่? อย่างไร?

9
วิธีต่างๆในการลบการเปลี่ยนแปลง Git ในเครื่อง
ฉันเพิ่งโคลนที่เก็บ git และตรวจสอบสาขา ฉันทำงานกับมันจากนั้นจึงตัดสินใจที่จะลบการเปลี่ยนแปลงในท้องถิ่นทั้งหมดของฉันตามที่ฉันต้องการสำเนาต้นฉบับ ในระยะสั้นฉันต้องทำสองคำสั่งต่อไปนี้เพื่อลบการเปลี่ยนแปลงในเครื่องของฉัน git checkout . git clean -f คำถามของฉันคือ (1) นี่คือวิธีการที่ถูกต้องในการกำจัดการเปลี่ยนแปลงในท้องถิ่นหรืออื่น ๆ โปรดแจ้งให้เราทราบวิธีการที่ถูกต้อง (2) เราจะใช้เมื่อใดgit reset --hardที่ฉันสามารถรีเซ็ตแม้ไม่มีคำสั่งนี้ ขอบคุณ * การแก้ไข: การแก้ไขที่สำคัญ: 03/26: * แทนที่คำที่คลุมเครือจำนวนมากด้วยคำศัพท์เฉพาะของคอมไพล์ [ติดตาม / ไม่ได้ติดตาม / จัดฉาก / ไม่ต่อเนื่อง] อาจมีไฟล์เพียงสามประเภทเมื่อเราทำการเปลี่ยนแปลงในเครื่อง: ประเภทที่ 1. ไฟล์ที่ถูกติดตามแบบจัดฉาก ประเภทที่ 2. ไฟล์ที่ไม่ได้ติดตามสถานะ ประเภทที่ 3. ไฟล์ที่ไม่ได้ติดตาม Unstaged หรือไฟล์ที่ไม่ได้ติดตาม ฉาก - ผู้ที่ถูกย้ายไปยังพื้นที่การแสดงละคร / …
625 git  git-bash 

27
ดาวน์โหลดไฟล์เดียวจาก GitHub
ฉันเดาว่าพวกคุณส่วนใหญ่นักพัฒนาใช้VCSใด ๆและฉันหวังว่าพวกคุณบางคนใช้ Git คุณมีเคล็ดลับหรือเคล็ดลับวิธีรับ URL ดาวน์โหลดสำหรับไฟล์เดียวในที่เก็บหรือไม่? ฉันไม่ต้องการให้ URL แสดงไฟล์ข้อมูลดิบ ในกรณีของไบนารีมันไม่มีค่าอะไรเลย http://support.github.com/discussions/feature-requests/41-download-single-file เป็นไปได้ไหมที่จะใช้ GitHub เป็น "เซิร์ฟเวอร์ดาวน์โหลด" หากเราตัดสินใจที่จะเปลี่ยนเป็น Google Code ฟังก์ชั่นที่กล่าวถึงนี้มีให้ที่นี่หรือไม่? หรือมีโฮสติ้งและ VCS ฟรีสำหรับโครงการโอเพนซอร์สหรือไม่

30
ลบข้อมูลรับรองออกจาก Git
ฉันทำงานกับที่เก็บข้อมูลหลายแห่ง แต่เมื่อเร็ว ๆ นี้ฉันเพิ่งทำงานในที่ทำงานภายในของเราและทุกอย่างยอดเยี่ยม วันนี้ฉันต้องยอมรับและใส่รหัสลงในรหัสอื่น แต่ฉันมีปัญหา $ git push appharbor master error: The requested URL returned error: 403 while accessing https://gavekortet@appharbor.com/mitivo.git/info/refs?service=git-receive-pack fatal: HTTP request failed ไม่มีอะไรที่ฉันสามารถทำได้ซึ่งจะนำรหัสผ่านมาอีกครั้ง ฉันจะรีเซ็ตข้อมูลประจำตัวในระบบของฉันเพื่อให้ Git จะขอรหัสผ่านของที่เก็บข้อมูลนั้นได้อย่างไร ฉันเหนื่อย: git config --global --unset core.askpass เพื่อยกเลิกการตั้งรหัสผ่าน git config credential.helper 'cache --timeout=1' เพื่อหลีกเลี่ยงแคชหนังสือรับรอง ... ดูเหมือนจะไม่มีอะไรทำงาน; ไม่มีใครมีความคิดที่ดีกว่า
623 windows  git  credentials 

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