老早就注册了github,打算把棋谱转换程序 wgs2sgf托管在那里,可是一直拖啊拖。一个月前,有人提了个issue:
我很想告诉他我是github新手啊同学,还玩不转github,不知道怎么把代码弄上去...
PS:今天成功用git提交了代码,可是又发现可以在线编辑文档,如果代码少,在线编辑也很方便 /oh/ 3个月前怎么就没发现呢...
转入正题,git for windows 使用小结。
一、配置git
$ ssh-keygen -t rsa -C "key的注释内容,随便填"
之后会询问key保存的路径和key的密码,保持默认即可(PS:我当时设置了密码,之后带来了一些小小的麻烦)。
然后进入自己家目录的.ssh目录下,复制 id_rsa.pub内容,登录github,进入Account Settings,选择SSH Keys,Add SSH Key,粘贴key。
验证是否成功:
$ ssh -T git@github.com
若成功:
Hi annProg! You've successfully authenticated, but GitHub does not provide shell access.
这一步和sourceforge差不多,只是github不提供ssh登录。
之后配置username和email:
$ git config --global user.name "your name" $ git config --global user.email "your_email@youremail.com" $ git config --list #完成上面两步后执行这条命令查看配置是否正确
二、代码操作
首先创建本地代码库:
$mkdir ~/wgs2sgf #和项目同名 $cd ~/wgs2sgf $git init # Sets up the necessary Git files # Initialized empty Git repository in /Users/you/wgs2sgf/.git/
同步代码到本地:
git pull git@github.com:annProg/wgs2sgf.git master
这是ssh方式同步,也可以使用https链接的方式:
git pull https://github.com/annProg/wgs2sgf.git master
之后把wgs2sgf.cpp复制到wgs2sgf目录,准备提交:
$ git add wgs2sgf.cpp $ git commit -m "commit main code" [master a4196e9] commit main code 1 file changed, 301 insertions(+) create mode 100644 wgs2sgf.cpp
配置远程仓库地址:
$git remote add origin https://github.com/annProg/wgs2sgf.git # Creates a remote named "origin" pointing at your GitHub repository $git remote add origin git@github.com:annProg/wgs2sgf.git # 上面是https方式,这里是ssh方式
提交:
$ git push origin master To git@github.com:annProg/wgs2sgf.git 926de2b..a4196e9 master -> master
三、在MinGW中使用git
习惯了用MinGW,mintty终端用起来很舒适,于是安装git时很纠结,安装后意味着我电脑上有两个msys了。很希望能直接mingw-get install来安装git,可惜没有这个包。
只有装msysgit了,但又想在mintty中使用git,于是选择了 “Run Git from the Windows Command Prompt”。一装完,打开git bash,跟mintty一比,难看又难用,立刻关闭,直奔mintty。可是,git push时却没了反应,光标闪啊闪,没任何提示,该不会又像登录mysql那样吧...
无奈又打开了git bash,提交时正确的反应是:
Enter passphrase for key '/c/Users/username/.ssh/id_rsa':
看来,mintty老毛病又犯了:无法调用交互性的 Windows 原生程序。
要解决此问题,有两条路可以走,第一条,放弃mintty,当然我是不大乐意。第二条,你不是要我输密码么,我把密码取消了不就可以了 /db/ ,于是:
ssh-keygen -p #输入现有密码,然后新密码,不设置密码直接回车
再次 git push,正常提交。
不知道以后还会不会遇到其他需要交互的命令。
四、中文的问题
git for windows用的其实就是msys,如果要用git bash,那解决方法和mingw中的msys类似,(用mintty的话那就不用折腾git bash了)。
参见:
http://book.51cto.com/art/201107/278844.htm
http://www.tecbbs.com/forum.php?mod=viewthread&tid=1467
Pingback: printf和scanf的执行顺序 | 知行近思