หลังจากทำตามคำแนะนำของ Tim Davis และติดตามผลของ Steve นี่คือสิ่งที่ฉันทำ:
เซิร์ฟเวอร์พีซี
- ติดตั้ง CopSSH, msysgit
- เมื่อสร้างผู้ใช้ CopSSH ให้ยกเลิกการเลือกการตรวจสอบรหัสผ่านและตรวจสอบการรับรองความถูกต้องของรหัสสาธารณะเพื่อให้กุญแจสาธารณะ / ส่วนตัวของคุณทำงานได้
- สร้างกุญแจสาธารณะ / ส่วนตัวโดยใช้ PuTTygen วางทั้งสองคีย์ในไดเร็กทอรี CopSSH / home / user / .ssh ของผู้ใช้
เพิ่มสิ่งต่อไปนี้ในไฟล์ CopSSH / home / user / .bashrc ของผู้ใช้:
GITPATH='/cygdrive/c/Program Files (x86)/Git/bin'
GITCOREPATH='/cygdrive/c/Program Files (x86)/Git/libexec/git-core'
PATH=${GITPATH}:${GITCOREPATH}:${PATH}
เปิด Git Bash และสร้างที่เก็บได้ทุกที่บนพีซีของคุณ:
$ git --bare init repo.git
Initialized empty Git repository in C:/repopath/repo.git/
พีซีสำหรับลูกค้า
- ติดตั้ง msysgit
- ใช้ไพรเวตคีย์ที่คุณสร้างบนเซิร์ฟเวอร์เพื่อคัดลอก repo ของคุณจากssh: // ผู้ใช้ @ เซิร์ฟเวอร์: พอร์ต / repopath / repo.git (ด้วยเหตุผลบางประการรูทคือไดรฟ์ C :)
สิ่งนี้ทำให้ฉันสามารถโคลนและคอมมิชชันได้สำเร็จ แต่ฉันไม่สามารถผลักดันไปยัง repo เปล่าบนเซิร์ฟเวอร์ ฉันยังคงได้รับ:
git: '/repopath/repo.git' is not a git command. See 'git --help'.
fatal: The remote end hung up unexpectedly
สิ่งนี้นำฉันไปสู่การติดตามและโซลูชันของ Ruiซึ่งสร้างหรือเพิ่มบรรทัดต่อไปนี้เป็น. gitconfig ในพา ธ% USERPROFILE% ของพีซีไคลเอ็นต์ของคุณ(C: \ Users \ ชื่อผู้ใช้)
[remote "origin"]
receivepack = git receive-pack
ฉันไม่แน่ใจว่าทำไมสิ่งนี้จึงเป็นสิ่งจำเป็น ... ถ้าใครสามารถให้ข้อมูลเชิงลึกมันจะมีประโยชน์
เวอร์ชัน git ของฉันคือ 1.7.3.1.msysgit.0