Git 是目前最流行的版本管理工具,也是程序员的必备技能之一。这里主要介绍一下git/github远程仓库的使用及相关配置。

SSH Keys

SSH Keys是什么呢?简单来说相当于一把钥匙(在机器中即电脑中进行配置),github相当于一把锁,每次发起请求是会去验证钥匙与锁是否配对。

由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置。

添加远程库

你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作。那如何将我们这个本地仓库上传到 GitHub 呢?下图简单描述了Git常用的操作流程。

1、在本地新建文件夹,命名为blog,在本地的blog仓库的路径下运行命令行。

$ git init    // 在当前目录新建一个Git代码库

这个操作在当前目录下生成一个.git文件,默认不显示,可在命令行中输入 ls -a,即可看到所有被隐藏文件,接下来进行如下操作:

$ echo "# myblog" >> README.md   //在当前目录下新建README.md,且文件内容为'myBlog';如果目录下已经有文件,请省略这一步
$ git add README.md //将README.md文件提交到问题暂存区
$ git commit -m "first commit" //将暂存区文件提交到本地仓库,且本次提交记录为'first commit'
$ git status -sb //显示当前所有文件的状态

这几步操作目的是将上传的文件提交到本地仓库,接下来就是介绍怎么样将本地仓库上传到远端库了。

2、登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库,名称随意,一般可以跟本地目录名一致。

在Repository name填入blog,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库。

3、点击创建按钮之后,GitHub 就会把后续的操作全告诉你,如图:

4、看上图,记得点击 SSH 按钮,如果不点击这个按钮,你就会使用默认的 HTTPS 地址。但是千万不要使用HTTPS 地址,因为使用HTTPS 除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但在某些只开放http端口的公司内部就无法使用SSH协议而只能用HTTPS 。

5、目前,在GitHub上的这个blog仓库还是空的,GitHub告诉我们,可以在这个仓库创建一个新的本地仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
现在,我们根据GitHub的提示,在本地的blog仓库下运行命令:

$ git remote add origin git@github.com:miqilin21/blog.git

6、下一步,就可以把本地库的所有内容推送到远程库上:

$ git push -u origin master

把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样:

7、如果你想查看变更历史,可以通过命令:$ git log

8、从现在起,只要本地仓库作了修改,如果你想让改动保存到远程仓库里,你需要先git add文件或者也可以git add。注意,如果这个 文件以前被我们add过,所以此处的git add操作可以省略,但我建议你使用git的初期阶段,不要省略git add。换句话说,每一次改动,都要经过git addgit commit两个命令,才能被添加到 .git 本地仓库里。接下来就通过命令:

$ git push   //将本地仓库修改内容同步到远程仓库

但是,如果远程库先有修改的话,要想本地仓库与其同步,还需通过命令:

$ git pull      //将远程库修改的内容下载到本地库

最后把本地master分支的最新修改$ git push推送至GitHub,现在,你就拥有了真正的分布式版本库!

从远程库clone

上面已经讲了

  • 在本地创建仓库
  • 将本地仓库上传到 GitHub

这里将介绍另外一种用法,那就是直接在 GitHub 创建一个仓库,然后克隆下载到本地。

1、在GitHub 上新建一个仓库 git-demo,这次就不创建空仓库了,而是自带 README 和 Lisence 的仓库,创建截图如下:

请按图中所示,一模一样的操作,然后点击创建按钮。

2、这样一来,这个仓库就会自动生成三个文件:

3、现在,远程库已经准备好了,下一步是用命令git clone克隆一个本地库,点击页面中唯一的绿色按钮「clone or download」,会看到一个弹出层:

请确保弹出层里的地址是 SSH 地址,也就是 git@github.com 开头的地址,如果不是,就点击 Use SSH 按钮,然后复制这个地址。

4、打开 Git Bash,找一个安全目录,比如 ~/Desktop 桌面目录就很安全:cd ~/Desktop,然后运行:

$ git clone git@github.com:miqilin21/git-demo.git

运行完了你就会发现,桌面上多出一个 git-demo-2 目录,里面的内容和远程库一模一样,至此从远程库克隆到本地就完成啦!

小结

三种方式都说完了,它们分别是:

1、在本地创建仓库

2、将本地仓库上传到 GitHub

3、GitHub 上的仓库克隆下载到本地

其实呢,还有很多种不同的方式,但是,你记住这几种就行了,已经够你用了。我们并不想要了解 git 的所有高级用法,我们的目的很明确:能通过 Git 命令使用 GitHub 就行。

我们最后再回顾一遍已经学到的命令:

git clone git@github.com:xxxx,克隆下载远程仓库
git init,初始化本地仓库 .git
git status -sb,显示当前所有文件的状态
git add 文件路径,用来将变动加到暂存区
git commit -m “信息”,用来正式提交变动,并备注信息,提交至 .git 仓库
如果有新的变动,我们只需要依次执行 git add xxx 和 git commit -m ‘xxx’ 两个命令即可。
git log 查看变更历史

其他学习资源

常用Git命令清单
Git菜鸟教程
廖雪峰的Git教程

本人Github链接如下,欢迎各位Star

https://github.com/miqilin21/miqilin21.github.io



tools  

Git GitHub

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!