(超实用)Ubuntu下配置和使用GitHub
首先你要拥有一个GitHub帐号,这个就不用说了吧
一、配置github环境
安装配置git服务器:
(1)安装ssh:
sudo apt-get install openssh-server openssh-client
(2)启动ssh服务:
sudo /etc/init.d/ssh restart
(3)安装git服务器:
sudo apt-get install git-core
配置ssh公钥
(1)本地生成ssh公钥(根目录下):
ssh-keygen -C "你的邮箱地址" -t rsa
注:这条命令会在当前用户根目录 ~/.ssh/ 下生成密钥文件,其中有id_rsa 和 id_rsa.pub。其中id_rsa是私钥,不能泄露,id_rsa.pub是公钥,可以告诉其他人。
(2)测试畅通性:
ssh -v git@github.com
测试成功会看到成功信息:
(3)上传公钥到github:点击账户中的profile,选择SSH and GPG keys,点击New SSH key,把~/.ssh/id_rsa.pub中的内容全部复制到Key编辑框中,点击上传。如下图:
(4)回复邮件:公钥上传后,github会往你的邮箱发送确认邮件,需要点击确认。
二、使用github管理项目
1、在你的github中创建一个新的仓库
2、仓库初始化:进入需要git的项目目录
在想要git的项目文件夹中,输入以下指令(比如笔者的/projects文件夹包含了平时所有工程文件,就先cd进入/projects):
git init
注:运行完后,会发现该目录下多了一个 .git 隐藏文件夹
3、配置git:
(1)设置用户名:
git config --global user.name "your name"
(2)设置用户邮箱:
git config --global user.email "your email"
4、建立本地库与github关联
git remote add origin "git@github.com: ... ..."
注:引号内为个人仓库的地址,具体要看你想将文件夹中文件关联到哪个仓库中,地址如下图所示:
5、添加.gitignore:
(这段转载自 老胡de博客:git中增加.gitignore )
.gitignore可以忽略你不想上传的文件,比如doc,temp_data,data_base等。
github默认只允许上传100MB的文件,有时候我们工作空间有一些大文件或者临时文件,不需要上传到github中,就要使用.gitignore来忽略某些文件或文件夹的上传。
只需要在.git同目录下新增.gitignore文件,然后添加不需要上次的目录即可,比如本人的.gitignore如下所示:
/database/
/slam_data/
/Log/
这样就可以忽略掉工作空间下的3个文件夹的上传。
如果你添加.gitignore的时候,git里面已经上传了很多不需要的文件,则使用下面两个命令干掉他们
如果是文件夹:git rm -r --cached 文件夹名
如果是文件:git rm --cached 文件名
方法参考自:https://stackoverflow.com/questions/9550437/how-to-make-git-ignore-idea-files-created-by-rubymine
6、添加托管文件:
git add .
注:这是添加目录下所有文件,如果只是添加某个文件,就将文件名字列出。
托管完成后可以通过查看git本地仓库的状态,来查看所要上传的文件:
git status
7、commit项目:
git commit -m "描述信息"
注:-m参数后面跟着本次提交的描述信息,可以是修改了哪些代码,新增了哪些功能等等。
8、上传项目:
(每次上传云端必选先执行第6步,将本件上传至本地仓库)
第一次git:
git push -u origin master
如果报错则需要强制上传:
git push -u origin +master
之后维护上传git文件用:
git push -u origin master
三、git常用命令
#1、克隆仓库代码到本地:
git clone "仓库地址"
#2、查看本地代码与远程代码有哪些不同
git diff
#3、//从远程拿到最新版本代码
#(提交代码时,忌讳直接提交。每次提交代码之前,
# 一定要保证本地的代码是最新的,即先执行git pull)
git pull
#4、查看本地代码属于仓库的哪个分支
git branch
#5、查看仓库都有哪些分支
git branch -a
#6、切换分支(注:不建议使用,最好给一个分支单独建立一个文件夹)
git checkout "分支名"
#7、克隆指定分支的仓库代码到本地
git clone -b "分支名" "仓库地址"
#8、上传本地文件到github的相应分支
git push -u origin 分支名(分支名通常为master)
#9、查看本地 git的状态,和本地 git中包含的文件
git status