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

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

1
เหตุใด "git log -‌- foo" จึงไม่สามารถใช้กับไฟล์ที่ถูกลบได้
ที่เก็บของฉันมีการเปลี่ยนแปลงเช่น: ... การกระทำบางอย่างที่ไม่เกี่ยวข้อง ... ยอมรับไฟล์ใหม่ที่fooมีเนื้อหา 100 บรรทัด ... แทรกแซงกระทำบางอย่างที่สัมผัสfoo... แทรกเนื้อหาfooที่ด้านบนของไฟล์ที่มีอยู่barและgit rm fooในคอมมิตเดียวกัน ... ยิ่งไม่เกี่ยวข้องกับการกระทำ ... fooตอนนี้ผมต้องการที่จะเห็นบันทึกการลบไฟล์ ทุกสิ่งที่ฉันอ่านรวมถึง SO บอกว่าฉันควรจะทำได้git log -- fooแต่คำสั่งนั้นไม่มีผลลัพธ์ หากฉันพบการกระทำที่รวมถึงการลบfooฉันทำได้git log 1234abcd -- fooและเห็นบันทึกของมันดังนั้นฉันคิดว่าเส้นทางของฉันไปfooไม่ใช่ปัญหา นอกจากนี้ทราบว่าgit merge-base HEAD 1234abcdผลดังนั้นฉันคิดว่าควรพิสูจน์กระทำสามารถเข้าถึงได้จาก1234abcd[...] HEADโปรดทราบว่าไม่มีไฟล์fooในโครงสร้างการทำงานของฉัน (ชัดเจนเนื่องจากถูกลบไปแล้ว) การใช้ Git 1.7.1.1 บน OS X ทำไมไม่ได้git log -- fooผลสำหรับฉันและฉันจะแก้ไขได้อย่างไร ขอบคุณ!
89 git  git-log 

5
.gitignore NuGet ไม่รวมแพ็คเกจ / รวมแพ็คเกจ / repositories.config
ฉันกำลังพยายามสร้าง. gitignore สำหรับโปรเจ็กต์ Visual Studio ที่ใช้ NuGet ปัจจุบันประกอบด้วย: \packages/* !packages/repositories.config สิ่งนี้ไม่เพิกเฉยต่อสิ่งใดในโฟลเดอร์ ทุกอย่างได้รับการจัดฉากในการเพิ่ม ฉันได้ลองแล้ว: packages/ !packages/repositories.config สิ่งนี้จะละเว้นทุกอย่างในโฟลเดอร์ package และไม่รวม package / repositories.config ผมทำอะไรผิดหรือเปล่า?
89 git  nuget  gitignore 

4
GitHub สามารถแสดงประวัติการเปลี่ยนแปลงที่เกิดขึ้นกับไฟล์เดียวในรูปแบบแพตช์ได้หรือไม่?
หากคุณทำเช่นgit log --patch -- path/to/fileนั้นคุณจะได้รับประวัติของไฟล์พร้อมกับความแตกต่างของการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นกับแต่ละคอมมิตดังนี้: $ git log --patch -- git-rebase.sh commit 20351bb06bf4d32ef3d1a6849d01636f6593339f Author: Ramkumar Ramachandra <artagnon@gmail.com> Date: Sat Jun 15 18:43:26 2013 +0530 rebase: use 'git stash store' to simplify logic rebase has no reason to know about the implementation of the stash. In the case when applying the …

7
การตั้งค่าแฟล็กเริ่มต้น git บนคำสั่ง
ฉันต้องการทราบว่ามีวิธีตั้งค่าสถานะโดยค่าเริ่มต้นสำหรับคำสั่ง git หรือไม่ โดยเฉพาะผมต้องการที่จะตั้ง--abbrev-commitธงเพื่อที่ว่าเมื่อการดำเนินการผมต้องการที่จะดำเนินการgit loggit log --abbrev-commit ซึ่งแตกต่างจากคำถาม " มีวิธีใดในการตั้งค่าแฟล็กโดยค่าเริ่มต้นสำหรับคำสั่ง git หรือไม่ " ดูเหมือนจะไม่มีแฟล็กการกำหนดค่าสำหรับการเพิ่ม --ab ย่อ - คอมมิตในบันทึกคอมไพล์ นอกจากนี้คู่มือคอมไพล์ระบุว่าฉันไม่สามารถสร้างนามแฝง: "เพื่อหลีกเลี่ยงความสับสนและปัญหาเกี่ยวกับการใช้สคริปต์นามแฝงที่ซ่อนคำสั่ง git ที่มีอยู่จะถูกละเว้น" ตัวเลือกที่สามของฉันคือการสร้างนามแฝงใหม่เช่นglog=log --abbrev-commitในไฟล์. gitconfig ของฉัน แต่ฉันไม่อยากประดิษฐ์ DSL ของตัวเองด้วยคำสั่งใหม่ ๆ มีวิธีอื่นในการบรรลุเพื่อให้abbrev-commitตั้งค่าสถานะเป็นค่าเริ่มต้นหรือไม่?
89 git  logging 

4
ละเว้นไฟล์ทั้งหมดซ้ำได้อย่างถูกต้องภายใต้โฟลเดอร์เฉพาะยกเว้นประเภทไฟล์เฉพาะ
ฉันเคยเห็นคำถามคล้าย ๆ กัน ( 1 , 2และ3 ) แต่ฉันไม่ได้รับคำตอบที่เหมาะสมจากพวกเขา ฉันต้องละเว้นไฟล์ทั้งหมดในโฟลเดอร์ใดโฟลเดอร์หนึ่งยกเว้นไฟล์บางประเภท โฟลเดอร์เป็นไดเร็กทอรีย่อยสำหรับรูทพา ธ Resourcesผมขอตั้งชื่อโฟลเดอร์ เนื่องจากฉันไม่ต้องการทำให้สิ่งต่างๆซับซ้อนขอให้ฉันละเว้นไฟล์ในโฟลเดอร์ทั้งหมดที่มีชื่อResourcesไม่ว่าจะอยู่ที่ใด นี่เป็นวิธีแก้ปัญหาที่พบบ่อยที่สุด (ในคำถามที่ซ้ำกันทั้งหมด) # Ignore everything * # Don't ignore directories, so we can recurse into them !*/ # Don't ignore .gitignore !.gitignore # Now exclude our type !*.foo ปัญหาในการแก้ปัญหานี้คือหยุดติดตามไฟล์ที่เพิ่มใหม่ (เนื่องจาก*ละเว้นไฟล์ทั้งหมด) ฉันไม่ต้องการยกเว้นไฟล์แต่ละไฟล์ทุกประเภท ฉันต้องการพฤติกรรมปกติที่หากมีการเพิ่มไฟล์ใหม่จะgit statusแสดงมัน ในที่สุดผมก็มีวิธีการแก้ปัญหาที่นี่ วิธีแก้ไขคือเพิ่ม.gitignoreไฟล์อื่นในResourcesโฟลเดอร์ ทำงานได้อย่างถูกต้อง …

2
อะไรคือความแตกต่างระหว่าง git push.default = current และ push.default = upstream?
หน้า man สำหรับ git-config แสดงรายการตัวเลือกเหล่านี้สำหรับ push.default: nothing - do not push anything. matching - push all matching branches. All branches having the same name in both ends are considered to be matching. This is the default. upstream - push the current branch to its upstream branch. tracking - deprecated synonym …

30
การเชื่อมต่อ pip ล้มเหลว: ไม่สามารถดึง URL ฐานของดัชนี http://pypi.python.org/simple/
ฉันเรียกใช้sudo pip install git-reviewและได้รับข้อความต่อไปนี้: Downloading/unpacking git-review Cannot fetch index base URL http://pypi.python.org/simple/ Could not find any downloads that satisfy the requirement git-review No distributions at all found for git-review Storing complete log in /home/sai/.pip/pip.log ใครมีความคิดเกี่ยวกับเรื่องนี้บ้าง?
89 python  git  ubuntu  pip  git-review 

8
git ที่เก็บซิงค์ระหว่างคอมพิวเตอร์เมื่อย้ายไปมา?
สมมติว่าฉันมีพีซีเดสก์ท็อปและแล็ปท็อปบางครั้งฉันทำงานบนเดสก์ท็อปและบางครั้งฉันก็ทำงานบนแล็ปท็อป วิธีที่ง่ายที่สุดในการย้ายที่เก็บ git ไปมาคืออะไร? ฉันต้องการให้ที่เก็บ git เหมือนกันเพื่อที่ฉันจะได้ดำเนินการต่อจากที่ที่ฉันทิ้งไว้ในคอมพิวเตอร์เครื่องอื่น ฉันต้องการตรวจสอบให้แน่ใจว่าฉันมีสาขาและแท็กเดียวกันบนคอมพิวเตอร์ทั้งสองเครื่อง ขอบคุณ Johan หมายเหตุ: ฉันรู้วิธีทำกับ SubVersion แต่ฉันอยากรู้ว่ามันจะทำงานกับคอมไพล์อย่างไร ถ้าง่ายกว่านั้นฉันสามารถใช้พีซีเครื่องที่สามเป็นเซิร์ฟเวอร์แบบคลาสสิกที่พีซีสองเครื่องสามารถซิงค์ได้ หมายเหตุ: คอมพิวเตอร์ทั้งสองเครื่องกำลังใช้งาน Linux อัปเดต : ลองใช้แนวคิด XANI: s กับ repo git เปล่าบนเซิร์ฟเวอร์และไวยากรณ์คำสั่ง push จาก KingCrunch ในตัวอย่างนี้มีไคลเอนต์สองตัวและหนึ่งเซิร์ฟเวอร์ มาสร้างส่วนของเซิร์ฟเวอร์ก่อน ssh user@server mkdir -p ~/git_test/workspace cd ~/git_test/workspace git --bare init ดังนั้นจากคอมพิวเตอร์เครื่องอื่นฉันพยายามรับสำเนา repo ด้วยโคลน: git clone user@server:~/git_test/workspace/ Initialized empty …

6
วิธีทำ "go get" บนแท็กเฉพาะของที่เก็บ github
ฉันกำลังพยายามรวบรวมฐานข้อมูล InfluxDB (เวอร์ชัน v0.8.8) โดยใช้ go get github.com/influxdb/influxdb แต่สิ่งนี้ดึงสาขาหลักและฉันต้องการv0.8.8แท็ก ฉันพยายามทำแล้ว go get github.com/influxdb/influxdb/releases/tag/v0.8.8แต่ล้มเหลวโดยบอกว่าไม่พบ ฉันยังพยายามที่จะทำประจำgo getสาขาหลักแล้วด้วยตนเองการตรวจสอบจากแท็กที่ใช้gitในGOPATH/src/github...เพื่อที่จะตั้งรุ่น corret ปัญหาในการใช้แนวทางสุดท้ายคือเมื่อฉันพยายามดึงการอ้างอิงโดยgo get -u -f ./...พยายามค้นหาในสาขาหลักและบางส่วนไม่มีอยู่ในสาขาหลัก ... TL; DR : ดำเนินการgo getบนแท็ก github เฉพาะและดึงการอ้างอิงที่ถูกต้อง
89 git  go  github 

8
git-svn: อะไรเทียบเท่ากับ "svn switch --relocate`?
ที่เก็บ svn ที่ฉันมิเรอร์ผ่าน git-svn ได้เปลี่ยน URL ในวานิลลา SVN svn switch --relocate old_url_base new_url_baseคุณเพียงแค่ต้องการทำ ฉันจะทำสิ่งนี้โดยใช้ git-svn ได้อย่างไร เพียงแค่เปลี่ยน svn url ในไฟล์ config ก็ล้มเหลว

8
เผยแพร่ไปยัง S3 โดยใช้ Git?
ไม่มีใครรู้วิธีการทำเช่นนี้? จนถึงตอนนี้ฉันยังไม่พบสิ่งที่เป็นประโยชน์ผ่านทาง Google ฉันต้องการตั้งค่า repo ในเครื่องและใช้git pushเพื่อเผยแพร่ไปยัง S3 โดยมีแนวคิดที่จะให้เวอร์ชันท้องถิ่นควบคุมเนื้อหา แต่มีพื้นที่เก็บข้อมูลระยะไกลบน S3 สามารถทำได้หรือไม่และถ้าทำได้อย่างไร
89 git  amazon-s3 

11
ข้อผิดพลาดคอมมิตคอมมิต: pathspec 'คอมมิต' ไม่ตรงกับไฟล์ใด ๆ ที่ git รู้จัก
ฉันพยายามอัปโหลดแอป Ruby ไปยัง Heroku ผมเริ่มต้นด้วยgit initแล้วฉันพิมพ์แล้วผมใช้git add .git commit -m initial commit เมื่อใดก็ตามที่ฉันใช้git commit -mฉันได้รับข้อความแสดงข้อผิดพลาดว่า: ข้อผิดพลาดการคอมมิตคอมมิต: pathspect 'คอมมิต' ไม่ตรงกับไฟล์ใด ๆ ที่ git รู้จัก ฉันได้รับแจ้งว่าสิ่งนี้เกิดขึ้นเนื่องจากการโต้แย้งอยู่ในลำดับที่ไม่ถูกต้อง สิ่งที่ฉันสังเกตเห็นคือเมื่อฉันใช้git add .มันจะไม่แสดงรายการไฟล์ที่ถูกเพิ่มเพราะมันจะไปที่บรรทัดถัดไป ฉันสงสัยว่าฉันกำลังมีปัญหานี้เนื่องจากไฟล์ของฉันไม่ได้ถูกเพิ่มเข้ามาจริงๆ ขอขอบคุณสำหรับคำแนะนำเกี่ยวกับวิธีแก้ไขปัญหานี้
89 git  command-line 

9
สองที่เก็บ git ในไดเร็กทอรีเดียว?
เป็นไปได้ไหมที่จะมีที่เก็บ 2 git ในไดเร็กทอรีเดียว ฉันไม่คิด แต่คิดว่าฉันจะถาม โดยทั่วไปฉันต้องการตรวจสอบไฟล์กำหนดค่าโฮมไดเร็กทอรีของฉัน (เช่น. emacs) ซึ่งควรเป็นเรื่องปกติในทุกเครื่องที่ฉันใช้งาน แต่มีที่เก็บที่สองสำหรับไฟล์ในเครื่อง (เช่น. emacs.local) ซึ่งมี การกำหนดค่าเฉพาะเครื่อง วิธีเดียวที่ฉันคิดจะทำก็คือการกำหนดค่าโลคัลในไดเร็กทอรีย่อยและละเว้นไดเร็กทอรีย่อยนั้นจากที่เก็บ git หลัก ความคิดอื่น ๆ ?

5
ใช้การเปลี่ยนแปลงจาก branch b เป็น a โดยไม่ต้องรวมหรือเพิ่มคอมมิต
สถานการณ์ของฉันคือฉันมีสาขาหนึ่งที่ฉันได้ทำการปรับปรุงครั้งใหญ่ในกระบวนการสร้าง (สาขา A) และอีกสาขาหนึ่งฉันกำลังทำงานกับฟีเจอร์ที่ไม่เกี่ยวข้อง (สาขา B) ตอนนี้เมื่อฉันแฮ็คที่สาขา B ฉันต้องการดึงสิ่งที่ฉันเขียนในสาขา A เพราะฉันต้องการสร้างที่เร็วและง่ายขึ้น อย่างไรก็ตามฉันไม่ต้องการ "สร้างมลพิษ" ให้กับสาขา B ของฉันเพียงแค่เพิ่มการเปลี่ยนแปลงจาก branchA เป็นการเปลี่ยนแปลงที่ไม่มีการจัดเตรียม สิ่งที่ฉันได้ลอง (เมื่อยืนอยู่บน branchB): git merge --no-commit branchA ใช้ไม่ได้เพราะทำให้คุณอยู่ในการผสาน ถ้าไม่เป็นเช่นนั้นมันจะสมบูรณ์แบบ git checkout branchA -- . ไม่ได้ผลเนื่องจากใช้การเปลี่ยนแปลงระหว่าง branchA..branchB และไม่ใช่การเปลี่ยนแปลง master..branchA มีอะไรอีกไหม แก้ไข: ใช่การเปลี่ยนแปลงในสาขา A มีข้อผูกพัน ในตัวอย่างนี้มีเพียงสาขาเดียวที่มีการปรับปรุงบิลด์ แต่อาจมีมากถึง N สาขาที่มีการปรับปรุงบิลด์ที่ฉันต้องการใช้ในขณะที่ทำงานกับสาขาฟีเจอร์
89 git  merge  branch 

4
github: การเพิ่มคอมมิตในคำขอดึงที่มีอยู่
ฉันเปิดคำขอดึงเพื่อติดตาม repo บน github โดยใช้Fork & Edit this file file หลังจากได้รับข้อเสนอแนะเกี่ยวกับการประชาสัมพันธ์ของฉันฉันต้องการเพิ่มข้อตกลงเพิ่มเติม นี่คือสิ่งที่ฉันจบลงด้วยการทำ $ git clone git@github.com:gaurish/rails.git #my forked repo $ git rebase -i 785a2e5 #commit hash of my commit using which PR was opened $ git checkout patch-3 #branch name I had to send my commits under to be shown …

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