ubuntu下git&github使用

记录下在Ubuntu下使用git与github的经历。

github基本功能:
Repository:放项目的仓库;
Fork:授权拷贝;(Fork 别人的项目)
Branch:Fork之后,在个人的github上出现同名Repository,是源Repository的分支(Branch);
Pull Request:推送请求,将修改后的代码推送给原作者;

  1. git初始设置

如,我的设置如下:

2. 初始化Git仓库(init)

上述结果表示在当前目录下创建了一个.git的隐藏目录,这个就是所谓的Git仓库了。此时的~/Mytest文件夹,我们也改名称之为工作树。

3. 提交(commit)

接下来在本地仓库里添加一些文件,比如README。进行如下操作

  1. 连接github并上传repository

首先在本地创建ssh key;

后面的your_email@youremail.com改为你的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在~/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key。

回到github,进入Account Settings,左边选择SSH Keys,Add SSH Key,title随便填,粘贴key。为了验证是否成功,在git bash下输入:

如果是第一次的会提示是否continue,输入yes就会看到:You’ve successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。

设置远程连接github:

将本地仓库的文件上传到github上:

git push命令会将本地仓库推送到远程服务器。
git pull命令则相反。

修改完代码后,使用git status可以查看文件的差别,使用git add 添加要commit的文件,也可以用git add -i来智能添加文件。之后git commit提交本次修改,git push上传到github。

  1. 其他

将github上的repository下载到本地,可以这样做:

如果github上已经有同名的repository,再把本地的repository上传会发生如下错误:

因为GitHub上有个README文件,就好比多人协同工作时其他人上传了一个新版本,此时需要执行 git pull https://github.com/username/Project.git 或git pull origin master

我们运行 git pull,目的就是要从原始克隆的远端仓库中抓取数据后,合并到工作目录中当前分支。
然后merge后执行git push即可。fast forward能够保证不会强制覆盖别人的代码,确保了多人协同开发。尽量不要使用non fast forward方法提交代码。

  1. 可能遇到的一些问题

6.1. 在linux上使用SSH连接github时可能会遇到如下错误:

解决:运行如下两个命令即可:

6.2. 设置了SSH连接,可是每次push的时候都需要输入用户名和密码

原因:使用了https方式push

解决:输入如下三行命令

 

参考文献:

  1. github简单使用教程
  2. git命令的基本使用方法
  3. Installing and using Git and GitHub on Ubuntu: A beginner’s guide
  4. Git与Github的使用(ubuntu)
  5. linux git ssh 无密码登陆 免密码登陆
  6. Error: Agent admitted failure to sign

注:个人认为第三篇参考文章比较简洁,很具有参考价值。其次是第一篇文章,很详细。

发表评论