在安装完Git之前,我们都做过如下的配置:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
配置的时候呢,账户名和Email我用的都是我的github账户的名称和账户。
使用$ git config –global –list命令可以查看当前git配置的账户信息。
在添加远程仓库之前,我们需要设置下SSH KEY,这里在主目录,如果是Linux系统是在home目录下,而windows是用户文件目录下。
$ ls -a
./ ../ LearnGit/
$ ssh-keygen -t rsa -C "你的邮箱地址"
然后一路Enter,结束之后可以看到用户主目录文件夹下有个.ssh文件夹,里面有两个文件。
登录github,在Account Settings->SSH KEYS页面,加入我们的SSH KEY,即在KEY文本框里粘贴id_rsa.pub文件的内容。设置完了SSH KEY,我们接下来就可以做远程推送的操作了。
如果我们本地有个仓库Learngit,又想在github建一个仓库进行同步,那么我们需要在github新建一个Learngit的仓库。
在本地Learngit仓库下执行如下命令进行关联,但是注意使用自己的账户名称。
$ git remote add origin git@github.com:[你的账户名称]/learngit.git
执行git push可以把本地内容推送到远程仓库上。
$ git push -u origin master
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
只要本地做了提交,使用$ git push origin master命令,就可以把本地master分支的最新修改推送到github。
但是如果我先在Github上建立了一个仓库,那么我就直接可以把它克隆到本地,修改后再进行同步,这个显然方便快速很多。
我的Github上有个HelloWorld的仓库,我直接git clone下来进行操作吧。
从仓库上找到clone的地址,当然这里可以选择SSH也可以使用HTTP,这里我选择SSH。
$ git clone git@github.com:xiaoyangLee/HelloWorld.git
$ cd HelloWorld/
$ ls
_config.yml hello.c hello.java HelloWorld.cpp README.md
新建一个hello.py文件,最后push到远程仓库上。
$ vim hello.py
$ git add hello.py
warning: LF will be replaced by CRLF in hello.py.
The file will have its original line endings in your working directory.
$ git commit -m "add python file"
[master 5dd5772] add python file
1 file changed, 1 insertion(+)
create mode 100644 hello.py
$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
nothing to commit, working tree clean
$ git push origin master
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 297 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To github.com:xiaoyangLee/HelloWorld.git
7a15d0e..5dd5772 master -> master
git push origin master命令完成了之后,直接在github上查看,发现新建的hello.py已经被推送到了仓库里了。
你也许还注意到,GitHub给出的地址不止一个,还可以用https://github.com/michaelliao/gitskills.git这样的地址。实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。
使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https。