Git 是目前最流行的版本管理工具,也是程序员的必备技能之一。
这里主要介绍一下git/github远程仓库的使用及相关配置:
一、SSH Keys
SSH Keys是什么呢?简单来说相当于一把钥匙(在机器中即电脑中进行配置),github相当于一把锁,每次发起请求是会去验证钥匙与锁是否配对。
由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置。
二、添加远程库
你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作。那如何将我们这个本地仓库上传到 GitHub 呢?下图简单描述了Git常用的操作流程。
1.在本地新建文件夹,命名为blog,在本地的blog仓库的路径下运行命令行。
$ git init
这个操作在当前目录下生成一个.git文件,默认不显示,可在命令行中输入 ls -a,即可看到所有被隐藏文件,接下来进行如下操作:
$ echo "# myblog" >> README.md
$ git add README.md
$ git commit -m "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
Counting objects: 3, done.
Writing objects: 100% (3/3), 216 bytes | 216.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To Build software better, together:miqilin21/blog.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
把本地库的内容推送到远程,用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 add 和 git commit 两个命令,才能被添加到 .git 本地仓库里。接下来就通过命令:
$ git push
但是,如果远程库先有修改的话,要想本地仓库与其同步,还需通过命令:
$ git pull
最后把本地master分支的最新修改推送至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
Cloning into 'git-demo'...
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 5 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (5/5), done.
运行完了你就会发现,桌面上多出一个 git-demo-2 目录,里面的内容和远程库一模一样,至此从远程库克隆到本地就完成啦!
四、小结
三种方式都说完了,它们分别是:
在本地创建仓库 将本地仓库上传到 GitHub 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 菜鸟教程 创建版本库
|