Git学习使用之旅
一、前言
以前版本管理工具只用过SVN
,对Git
仅有所耳闻但未曾用过。直到前两天收到360实习生的在线面试题目,题目发布在github上,要求我也把答案也提交到github上去,顿时觉得书到用时方恨少!随后花了几个小时熟悉了github的基本操作完成了题目,但是只用的是Git
的图形界面的基本功能,今天把之前学的总结下,也把命令行下的操作方法也学学。
二、Windows下图形化客户端
这里用到了TortoiseGit。
先安装msysgit再安装TortoiseGit,前者是Git for Windows,后者是Windows Shell Interface to Git。
安装使用方法有:github上大神的教程
使用过程中遇到的问题是每次提交都要输入用户名和密码,比较麻烦。
解决办法是设置SSH key。
在本地用TortoiseGit自带的Puttygen工具生成一对公钥和私钥,公钥复制到你的GitHub网站设置中,私钥存在本地电脑里。具体用法上面那个教程里也有说明。
三、Linux下命令行
1.安装+配置
先安装git,我的CentOS自身已经集成了~
Linux下命令行连接GitHub貌似必须使用SSH key,因为是采取SSH与GitHub连接的,不设置的话会出现Permission denied错误。
用下面的命令测试是否连接成功:
ssh -T git@github.com
若不成功,执行下面生成SSH key,然后将id_rsa.pub文件内容复制到GitHub账户设置里去:
ssh-keygen -t rsa
这里我遇到的问题是设置后出错:
Agent admitted failure to sign using the key
解决办法是用ssh-add命令把私钥文件添加进去: ssh-add ~/.ssh/id_rsa
2.操作
其他常用命令这个网站写的好清楚啊!:git - 简明指南
大致有:
设置Git全局用户配置
git config --global user.name "your_name"
git config --global user.email "your_email"
创建本地仓库
git init
克隆仓库
git clone <SSH clone URL>
添加/删除文件到本地暂存区
git add/rm <filename>
提交到本地HEAD
git commit -m "代码提交信息"
定义远程服务器别名origin
git remote add origin git@github.com:***/new-project.git
推送改动
git push origin master
拉取改动
git pull
这篇博客总结的也挺好:http://blog.csdn.net/ithomer/article/details/7529022
四、结尾
这次写博客尝试用MarkDown来编辑,的确挺不错的一个编辑工具,这里是一个在线MarkDown编辑器,还有个一客户端MarkdownPad。 之前很少写公开的博客(都是在自己电脑上记笔记),以后有空要多来写写!;)
后续:
错误:error: Untracked working tree file 'xxx' would be overwritten by merge.的解决办法:
- git reset --hard HEAD
- git clean -f -d
- git pull