刚吃完饭,我赶紧喝几口可乐杀杀精,为了过两天的开房做好准备,以防天赐。对,我就是要任性的把这个谣言当作自己真的信仰~哈哈
好了,玩笑开过了,来谈点严肃的事情。今天下午我写完程序后便开始写Makefile,刚刚写Makefile的时候我就有在想,如果迷糊的写完Makefile,万一make clean的时候把.c也删除了那就好玩了。蛤蛤~是的,刚刚说完我就真的把自己在.c中敲的代码全部make clean掉了。。。。真是一万只草泥马在心里放肆的乱踏啊!!乱踏!!!
没办法了,为了防止这类事件的再次发生,只能赶紧找个干爹保护了。git这把保护伞目前好像是最火的,就他了。
centos6.5安装Git
声明:我不是在windows下界面gash,我只是实现在scureCRT上面使用通过虚拟机远程ssh操作。
# yum install git
因为刚开始接触,看起来还有点复杂。还牵扯到国外的github托管网站。万一哪天又跟谷歌一样必须跳墙才可以的话那不抓瞎了么。机智的我想起来一个月前在git@osc上注册过帐号,就决定靠oschina来托管代码。这国内的网站主要就是方便,我怎么会因为他是中文界面而选他。
打开终端,第一步,你需要告诉git你的名字,这个名字会出现在你的提交记录中,然后是你的Email,同样,这个Email也会出现在你的提交记录中,请尽量保持此Email和你的Git@OSC的注册Email一致
# git config --global user.name “Skyhandy”
# git config --global user.email “[email protected]”
现在有了基本信息之后就要弄密钥了
# ssh-keygen -t rsa -C “[email protected]”
直接空格三下后生成密钥文件
# cat ~/.ssh/id_rsa.pub
#ssh -rsa AAAB3....... //这里就是你的key了,你全部复制好。
前面说了我是用国内的oschina来托管代码。自然你要进去创建帐号。
http://git.oschina.net/ 喏,网站在这。
进去创好之后点击个人资料后添加密钥
这时候就把你刚刚复制的钥匙码全部粘贴进来。然后他会自动显示标题,也就是你的用户名。保存
之后我们来验证一下是否加入:
显示Welcome to Git@OSC, yourname! 这样我们就已经成功的创建了一个远程仓库了。可以把东西从硬盘上导出去备份咯。
使用教程:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013743256916071d599b3aed534aaab22a0db6c4e07fd0000
真的是从零开始学Git,说的浅显易懂,很快就可以上手。
下面给自己列举一些简单操作:
#git init //创建版本库/把当前目录变成Git可以管理的仓库。一般就直接在要托管的代码目录下操作。
#git add file //把文件添加到仓库的暂存区
#git commit -m“备注信息” //把刚刚add的文件全都提交到仓库中。
#git status //查看仓库下当前文件最新信息,可快速查看文件是否修改 ,掌握当前仓库内文件的状态。可根据提示进行删除或者撤销。
#git diff file//可查看当前最新的file与最近一次修改的不同。形如unix下diff。
#git log //可查看仓库日志,也就是自己所有的信息提交记录。
#git reset --hard HEAD^ //快速返回到上个版本 HEAD表示当前版本,HEAD^表示上个版本。可以配合git log查看HEAD之后指定返回的版本git reset --hard 1223423版本号前几位
注意:如若返回版本后仓库会在log里面删除掉返回前版本的信息。
#git reflog //记录自己的每一次命令,联系上一条,可以查看获得返回前的HEAD,然后再次reset HEAD 返回前最新版本的版本号。
#git checkout -- file //如果本地目录被误删或者是丢失,可以试试这个指令把文件从Git的版本库里面再次提取出来。
#git rm file //用于删除版本库中的文件。
#git remote add origin SSH //在你创建好项目之后可以把本地仓库关联到项目仓库。SSH为网站上ssh链接
#git push -u origin master //第一次使用时-u推送master分支的所有内容,也就是把本地库的所有内容推送到远程库上。
#git push origin master //当第一次把本地库推送到远程库上之后就可以直接推送了。
要说一下的是,add,commit都是推送到本地仓库,要想真正做到备份,还是要push到远程仓库之中。即使没网,我们也可以先保存到本地仓库,然后有网时再push推送完成同步即可。
再补充一下:第一次如果push时候出现:
To [email protected]:sky_handy/ds18_b20.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to '[email protected]:sky_handy/ds18_b20.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again. See the 'Note about
fast-forwards' section of 'git push --help' for details.
是因为初次使用没有与项目同步,我们若只将此作为仓库存放项目代码的话,暂时可以直接强制push上去。使用git push -f 即可托管代码。