Ubuntu下git的配置和使用

现在进入部门了,有了自己的办公桌和电脑,感觉还是很棒的。虽然还是在轮岗期,不过部门负责人还是给我们新员工每人分配了一个课题,就是在两周的时间做一个安卓小应用。由于平时轮岗也有很多事要做,所以每天在公司写一些代码,然后用优盘拷贝回宿舍继续写。觉得这样挺麻烦的,想起以前用github保存代码,正好现在我还是在用ubuntu,就打算继续使用github来保存。因为以前配置在ubuntu下配置git的时候有大神fookwood的帮助,现在只能自己摸索了,网上搜了很多,不过最后都有各种问题,今天夜里又重新整理了一下,终于配置成功了,现在把过程写下来,分享给需要的,也备以后自己参考。
准备工作:首先要现在github上注册一个帐号,右上角有个sign up注册帐号,要是已经有了就点sign in直接登录就好。登录成功之后点击右上角一个图标(create a new repo)新建一个代码仓库就是存放你以后项目的仓库(repositories),当然可以创建很多个,这个都应该会,就不多说了。下面开始安装和配置过程了。

安装git,后面的-y是打包安装这三个程序

1
sudo apt-get install git-core git-gui git-doc -y

生成本地SSH密匙(这是关键的一步)

如果用户是第一次使用git,就需要现在家目录创建一个.ssh文件夹,生成密匙用的默认文件夹,由于是隐藏的,用户可以在家目录按Ctrl+h来显示隐藏文件夹,看看是否已经有这个.ssh文件夹,如果没有,就打开终端输入如下命令:

1
mkdir ~/.ssh

PS:要是没有创建之前已经有的.ssh目录的话,切换到.ssh,用ls命令查看目录下是否有id_rsa.pub与id_rsa两个文件,有的话就代表密匙已经生成过,就不需要再执行生产密匙的步骤。

创建好目录之后,就开始输入如下命令生成密匙。

1
ssh-keygen -t rsa -C "your_email@example.com"

注意,为了保证是默认设置,当提示让输入保存密匙的文件的时候,直接按回车键就可以了。之后会让输入密码,和确认密码,可以输要保证两次一样,也可以都按回车键不输密码。执行结束之后终端会输出如下信息。

1
2
3
4
Your identification has been saved in /home/you/.ssh/id_rsa.
# Your public key has been saved in /home/you/.ssh/id_rsa.pub.
# The key fingerprint is:
# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com

添加密匙到github上

上一步会在/~/home/.ssh/文件夹中生成id_rsa.pub与id_rsa两个文件.其中id_rsa是私钥,保存存在本地,id_rsa.pub是公钥.然后将公钥中的内容粘贴到你github帐号中的SSH Public Keys的位置。注意小心不要复制到空格
不过还有另一种方法将key复制到粘贴板:

1
2
sudo apt-get install xclip
xclip -sel clip < ~/.ssh/id_rsa.pub

执行这两个命令之后,就复制id_rsa.pub的内容到粘贴版了。

打开github网站,点击右上角Account settings图标,然后在左边栏选择SSH Keys,接着点击右边的Add SSH Key,title可以随便填,key里面直接右键粘贴就可以了。然后点击添加,如果提示添加失败,可能就是复制的时候有问题,所以推荐使用上面的命令来复制,而不是打开本地key文件去复制

测试是否成功

1
ssh -T git@github.com

为了确保一切OK,我们测试是否添加key成功,其间如果用户在第一步设置了密码,会提示输入密码。请确保不要更改git@github.com。输入上面的命令之后,你会看到一个警告,不用管,输入yes就行。过一会就会出现如下信息。

1
Hi yourname You've successfully authenticated, but GitHub does not provide shell access.

如果yourname显示的正确,就代表你已经成功安装了SHH Key了。(未完,夜深了,明天继续写。。)

初始化git配置

1
2
git config --global user.name "picksomething"
git config --global user.email zzucaobin@163.com

现在就可以clone服务器上新建的仓库(repository)到本地了,比如我新建了一个名字叫做work的仓库,我的用户名是picksomething,可以通过https://github.com/picksomething/work访问我的work仓库。那么我就可以通过如下命令来将我新建的仓库clone到本地。注意,事先需要在本地新建一个你想要保存仓库的文件夹,比如我在home目录下新建了一个github文件夹,我切换到github目录下,执行如下命令:

1
git clone https://github.com/picksomething/work.git

后面的地址就是你仓库的地址,后缀.git和不加后缀是一样可以访问你建的仓库的,记住要把picksomething改成你的用户名,把work改成你刚新建的仓库。

上传本地项目到服务器

切换到自己本地的目录,我的是home目录下的github,然后把要上传的文件拷贝到该目录下,执行如下命令。

1
2
3
4
5
git init
git add a.txt
git commit -m "测试一下"
git remote add origin https://github.com/picksomething/work.git
git push origin master

这里需要说明的是:

1
git remote add origin https://github.com/picksomething/work.git

只是把github上的work仓库加为远程仓库。origin只是一个名字,可以更换的,比如换成和自己仓库一样的名字,因为以后如果你服务器上有很多仓库的话,你可以在添加一个远程仓库,那个时候就不能再用一样的origin了,所以建议大家添加哪个远程仓库就把origin改成什么名字,不过后面的git push origin master也一样要改成和上一句同样的名字

运行上一段命令之后可能会提示错误,那么就需要先把仓库的东西拉到本地,运行如下命令:

1
git pull origin master

如果提示用户

1
fatal: remote origin already exists

代表这个远程仓库已经存在了,就不用执行这一步了,当然用户也可以运行如下命令,移除这个远程目录,重新添加。

1
git remote rm origin

执行第六步第一段代码最后一句的时候会让用户输入用户名和密码,正确输入就可以了,这样就完成了。下一次在上传代码的时候就直接运行一下步骤就可以了。前提是上传到同一仓库的时候,要是仓库不同还是要有添加新的远程仓库这一步的

1
2
3
git add 项目文件
git commit -m '备注'
git push origin master

ok了,到此就结束了,git是一个很好用的工具,推荐linux用户使用

补充:如果不想每次都输入用户名和密码的话,可以使用ssh方式,ssh方式是通过密匙认证的不需要输入密码,https方式每次都需要输入用户名和密码,如果想改为ssh方式,只需要找到项目目录下的.git文件夹,然后进入到该文件夹里面找到config文件,编辑该文件将其中的URL改为ssh提交的方式改过之后是这样的:

[remote "origin"]
url = git@github.com:picksomething/work.git
fetch = +refs/heads/*:refs/remotes/origin/*