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

Git เป็นระบบควบคุมเวอร์ชันโอเพ่นซอร์สที่ได้รับการออกแบบและเขียนโดย Linus Torvalds โดยทั่วไปจะใช้เพื่อติดตามซอร์สโค้ดสำหรับโครงการซอฟต์แวร์ ในฐานะที่เป็น DVCS Git ให้ความช่วยเหลือที่มีประสิทธิภาพด้วยการรวมสาขาการผสานและการพัฒนาแบบกระจาย

5
การใช้ Git ในหลาย ๆ ระบบโดยไม่ต้องเข้าถึงเครือข่าย
ฉันต้องการใช้การควบคุมเวอร์ชัน แต่ด้วยเหตุผลด้านความปลอดภัยเซิร์ฟเวอร์ที่ฉันใช้งานอยู่ไม่มีการเชื่อมต่ออินเทอร์เน็ต: ฉันสามารถย้ายไฟล์ในแฟลชไดรฟ์ USB เท่านั้น ฉันยังสามารถใช้ Git กับการตั้งค่านี้ได้หรือไม่? ฉันสามารถสร้างแพตช์เล็ก ๆ ที่ฉันสามารถนำไปใช้กับที่เก็บ Git ได้หรือไม่?
84 git 


4
ดึงสาขา Git อื่นโดยไม่เปลี่ยน
เมื่อเร็ว ๆ นี้เราได้เปลี่ยนจาก SVN เป็น Git และในเวลาเดียวกันก็ทำให้ระบบที่ใช้งานจริงของเราเข้าสู่การควบคุมเวอร์ชัน ในโครงการที่ฉันได้รับมอบหมายเราทุกคนเข้าถึงที่เก็บเดียวกันและเพื่อรับการเปลี่ยนแปลงสดเราแค่git pullอยู่ที่นั่น สิ่งนี้ทำให้เกิดปัญหาเนื่องจากนักออกแบบเว็บของเราผลักดันการเปลี่ยนแปลงใน VCS ที่ยังไม่ควรเผยแพร่ แต่ควรอยู่ในสภาพแวดล้อมการทดสอบเว็บ เมื่อนักพัฒนาคนใดคนหนึ่งดึงเข้ามาใช้งานจริงเขาจะได้รับการเปลี่ยนแปลงทั้งหมด (อาจยังไม่เสร็จ) ฉันคิดว่าการเปลี่ยนสดเป็นสาขาพิเศษและรวมสิ่งที่เปลี่ยนแปลง แต่เนื่องจากขาดความรู้คอมไพล์ของฉันฉันไม่มีความคิดอย่างไร ความคิดของฉันคือ: สร้างสาขาใหม่ในการถ่ายทอดสด ( git branch live) ทุกครั้งที่บางสิ่งบางอย่างต้องมีชีวิตอยู่ การเปลี่ยนแปลงในการดึงต้นแบบ (ชอบgit checkout master; git pull; git checkout live) git merge master ปัญหาคือการเปลี่ยนไปใช้งานต้นแบบหรือดึงทุกอย่างเข้าสู่ระบบสดจะทำให้เกิดปัญหาดังนั้นฉันจึงต้องการหลีกเลี่ยงปัญหานี้ มีวิธีใดบ้างในการทำสิ่งนี้หรือมีวิธีที่ดีกว่าในการจัดการระบบ Live (ยกเว้นการฝึกอบรมผู้ใช้งานเว็บเพื่อไม่ให้ผลักดันเนื้อหาที่ยังไม่เสร็จ)
55 git 

1
ฉันจะเปลี่ยนไดเรกทอรีที่ ssh-keygen ส่งออกเป็นอย่างไร
ฉันต้องการเรียกใช้คำสั่งเช่น: ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ความเข้าใจของฉันคือ ssh-keygen ส่งออกไปยังไดเรกทอรีบ้าน ฉันกำลังทำงานกับคอมพิวเตอร์บนเครือข่ายโดยใช้ Git Bash (Windows, MYSS MINGW64) ซึ่งเป็นไดเรกทอรีหลักที่ฉันไม่มีสิทธิ์เข้าถึง ฉันเปลี่ยนโฮมไดเร็กตอรี่ดังนี้: export HOME=C:/Users/myusername ดังนั้นเมื่อฉันป้อน: echo $HOME มันบอกว่า: C:/Users/myusername แต่เมื่อฉันพยายามเรียกใช้คำสั่ง ssh-keygen อีกครั้งมันจะทำงานในไดเรกทอรีที่ฉันไม่มีสิทธิ์เข้าถึง ฉันดูไฟล์โปรไฟล์เพื่อหาเส้นทางที่มีการเข้ารหัสยาก แต่ไม่พบสิ่งใดเลย ฉันจะเปลี่ยนมันให้ชี้ไปยังไดเรกทอรีที่ฉันมีสิทธิ์เข้าถึงได้อย่างไร
54 ssh  git 

3
ฉันจะผลักดันที่เก็บ Git ไปยังโฟลเดอร์ผ่าน SSH ได้อย่างไร
ฉันมีโฟลเดอร์ชื่อ my-project ซึ่งฉันได้ทำgit init , git commit -aเป็นต้น ตอนนี้ฉันต้องการที่จะผลักดันมันไปยังโฟลเดอร์ว่างที่ / mnt / foo / bar บนเซิร์ฟเวอร์ระยะไกล ฉันจะทำสิ่งนี้ได้อย่างไร ฉันลองแล้วโดยดูจากสิ่งที่ฉันได้อ่าน: cd my-project git remote add origin ssh://user@host/mnt/foo/bar/my-project.git git push origin master ซึ่งดูเหมือนไม่ถูกต้อง (ฉันคิดว่าแหล่งที่มาจะมาก่อนปลายทาง) และล้มเหลว: fatal: '/mnt/boxee/git/midwinter-physiotherapy.git' does not appear to be a git repository fatal: The remote end hung up unexpectedly ฉันต้องการให้มันใช้งานได้โดยที่ฉันไม่ต้องเข้าถึงรีโมตโฮสต์และสร้างที่เก็บ …
53 git 

9
ฉันจะเพิ่มคำสั่ง 'tree' ลงใน git-bash บน Windows ได้อย่างไร
ฉันใช้ git-bash ใน Windows 7 ฉันต้องการดูแผนผังของไดเรกทอรีปัจจุบัน อย่างไรก็ตาม: jcollum@DEVELOPER01 ~/Dev/express_coffee $ tree . sh.exe": tree: command not found ตกลงดังนั้นฉันไม่ได้มีคำสั่งต้นไม้ ฉันจะติดตั้งได้อย่างไร ฉันพบบทความ แต่สำหรับ Macs
53 windows-7  bash  git  git-bash 

2
วิธีการกรองกระทำโดยผู้เขียนใน SourceTree?
ในมุมมองสาขาของSourceTreeฉันเห็นการกระทำทั้งหมด ฉันต้องการกรองความมุ่งมั่นที่จะแสดงเฉพาะสิ่งที่ฉัน / คนกระทำ ฉันจะทำสิ่งนี้ได้อย่างไร ขอบคุณ
51 git 

1
ฉันจะรวมสองสาขาโดยไม่สูญเสียไฟล์ใด ๆ ได้อย่างไร
ฉันมีสองสาขาที่มีไฟล์ดังต่อไปนี้: สาขา a: file_a file_b file_c สาขา b: file_a file_d file_e ฉันต้องการที่จะรวมพวกเขาเพื่อให้ฉันได้รับทั้งไฟล์จากaและb (และไฟล์ที่มีอยู่ในทั้งสองปกติควรจะผสาน)! เป็นไปได้หรือไม่
49 git  merge 

1
GIT ผสานข้อมูลหลักเข้ากับสาขา
ฉันได้พัฒนาฟีเจอร์ใหม่ในสาขาใหม่และที่ด้านข้างมีการเปลี่ยนแปลงเล็กน้อยในสาขาหลักของฉัน เป็นไปได้หรือไม่ที่จะรวมสาขาหลักเข้ากับสาขาใหม่ของฉันเพื่อให้ทันสมัยเพื่อที่ฉันจะได้ไม่เกิดข้อขัดแย้งในการรวมจำนวนมากเกินไปเมื่อคุณสมบัติใหม่เสร็จสิ้น

4
Git Bash ที่นี่ใน Console2?
MSysGit ติดตั้งรายการเมนูบริบทที่เปิดพรอมต์ Git Bash ที่โฟลเดอร์ที่เลือกในปัจจุบัน อย่างไรก็ตามสิ่งนี้จะเปิดหน้าต่าง cmd.exe และฉันต้องการให้เปิดในConsole2แทน ฉันต้องแก้ไขอะไรบ้างเพื่อให้ทำงานได้ หมายเหตุฉันได้เห็นคำถามที่เกี่ยวข้องนี้แล้ว แต่คำตอบนั้นล้าสมัยแล้ว - MSysGit กำลังใช้สคริปต์ vba เพื่อเรียกใช้ bash prompt นอกจากนี้ยังไม่ได้อธิบายอย่างชัดเจนถึงวิธีการทำงานของ Console2 ปรับปรุง: คุณอาจจะสนใจในการทำเช่นเดียวกันกับConEmuเป็นทายาทที่ดีมากกว่าที่จะคอนโซล ดูที่นี่: Git Bash ที่นี่ใน ConEmu

4
แคชรหัสผ่านถ้าห้ามใช้ SSH-keys
ฉันมีเซิร์ฟเวอร์ที่ฉันต้องเข้าถึงบ่อยๆผ่าน ssh เพราะฉันคำนวณมัน ตอนนี้ศูนย์คอมพิวเตอร์ห้ามใช้ SSH-keys อย่างชัดเจนเพราะมัน "ไม่ปลอดภัย" พวกเขารู้สึกว่าการพิมพ์รหัสผ่านของฉันบนแป้นพิมพ์ทุกครั้งที่เป็นไปได้ต่อหน้าคนอื่นเป็นวิธีที่ปลอดภัยกว่าในการเข้าสู่ระบบ ตอนนี้; ฉันไม่สามารถเปลี่ยนความคิดของพวกเขา (ฉันพยายาม) มีวิธีในการเก็บรหัสผ่าน SSH ชั่วคราวอย่างน้อยวิธีที่ GIT สามารถเก็บรหัสผ่านไว้ในแคชตามเวลาที่กำหนดได้หรือไม่?
46 ssh  git 

4
จะสลับผู้ใช้คอมไพล์ที่เทอร์มินัลได้อย่างไร?
ฉันพยายามผลักดันโครงการไปยังที่เก็บระยะไกลจากบรรทัดคำสั่ง จากในไดเรกทอรีท้องถิ่นของฉันฉันกด: $ git push และรับข้อผิดพลาดต่อไปนี้: รีโมต: การอนุญาตให้ใช้ชื่อผู้ใช้ 1 / repo.git ถูกปฏิเสธเป็นชื่อผู้ใช้ 2 ร้ายแรง: ไม่สามารถเข้าถึง ' https://github.com/username1/repo.git/ ': URL ที่ร้องขอส่งคืนข้อผิดพลาด: 403 username1ชื่อผู้ใช้บัญชี github ของฉันอยู่ที่ไหนที่ฉันต้องการผลักดันไปยังที่เก็บและusername2เป็นบัญชีเก่าที่ฉันใช้ในเครื่องนี้ ฉันใช้ OS X Yosemite (v10.10.5) บน Macbook Air และฉันชอบที่จะใช้httpsแทนSSH ฉันจะอัปเดตเป็นอย่างไรเพื่อusername1ให้สามารถผลักดันรีโมตของฉันได้สำเร็จ แก้ไข: เพื่อความชัดเจนฉันไม่ได้พูดถึงเพียงแค่การแก้ไขconfig userวัตถุเช่น $ git config --global user.name "Billy Everyteen" $ git config --global user.email "billyeveryteen@example.com" …

4
เกิดข้อผิดพลาดในการเรียกใช้ Gitkraken แม้ว่าจะติดตั้งการพึ่งพา [ปิด]
ฉันติดตั้ง Gitkraken เนื่องจากฉันมีโปรเจ็กต์ไม่กี่ตัวที่ฉันต้องการใช้กับกล่อง KDE Neon ของฉัน ตอนนี้ฉันค่อนข้างแน่ใจว่าฉันติดตั้งทุกอย่าง แต่ฉันวิ่ง gitkraken ใน terminal และฉันได้รับสิ่งนี้ Node started time: 1500754704472 libgnome-keyring.so.0: cannot open shared object file: No such file or directory Error: libgnome-keyring.so.0: cannot open shared object file: No such file or directory (ฉันจะโพสต์ส่วนที่เหลือหากเห็นว่าจำเป็น) ปัญหาคือฉันได้ติดตั้งพวงกุญแจ lotus@Lotus-HackBook:~$ gnome-keyring usage: gnome-keyring command [options] commands: certificate-exception import …

4
พร้อมต์ Tmux และ ZSH แบบกำหนดเอง: บั๊กที่มีชื่อหน้าต่าง
ฉันปรับแต่งพรอมต์ ZSH ของฉันด้วยoh-my-zshเพื่อให้อ่านได้ง่ายขึ้นและเพิ่มข้อมูลเกี่ยวกับ git ถ้าฉันอยู่ในที่เก็บ ตัวอย่าง: bob@inf [~/docs] % bob@inf [~/src/nicest] master %(ในที่เก็บ git) มันใช้งานได้ดี แต่ฉันมีข้อผิดพลาดบางอย่างtmuxและชื่อหน้าต่าง มันยังคงแสดงค่าที่ไม่เหมาะสมและฉันไม่สามารถปิดการใช้งานด้วยautomatic-rename off(มันไม่ทำงานชื่อหน้าต่างเปลี่ยนหลังจากแต่ละคำสั่ง) สำหรับตัวอย่างแรก tmux ใช้~/docsสำหรับชื่อหน้าต่าง ฉันไม่แน่ใจว่าฉันจะแก้ไขได้อย่างไรฉันต้องการเก็บ zsh ไว้เหมือนเดิมหากสามารถเปลี่ยนแปลงได้ แต่ต้องการที่จะเข้าใจว่าปัญหาอยู่ที่ไหน วิธีแก้ปัญหาอื่นอาจจะเป็นคำสั่งกำหนดใหม่settile(จากคำตอบนี้ ) แต่ฉันไม่แน่ใจว่าจะทำอย่างไรให้ถูกวิธี
43 git  zsh  tmux  prompt  oh-my-zsh 

6
วิธีการหลีกเลี่ยงการถูกถามว่า "ใส่รหัสผ่านสำหรับคีย์" เมื่อฉันทำการดำเนินการ ssh บนโฮสต์ระยะไกล?
ฉัน ssh เป็นโฮสต์ระยะไกล (linux, fedora) และฉันต้องการที่จะดำเนินการ ssh (git กับ bitbucket) ที่นั่น มี ssh-agent กำลังทำงานบนเครื่องนั้น $ ps -e|grep sh-agent 2203 ? 00:00:00 ssh-agent แต่เมื่อฉันต้องการคอมไพล์ฉันต้องป้อนวลีรหัสผ่าน $ git pull Enter passphrase for key '/user/wgong/home/.ssh/id_rsa': หมายเหตุ: หากฉันทำงานกับเครื่องนั้นในพื้นที่มันจะไม่ขอให้ฉันป้อนข้อความรหัสผ่าน
43 ssh  git 

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