Git是一个免费、开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。
Github: 目前最大的代码托管网站,世界上大部分开源软件都托管在这里,已经发展成软件开发协作社区,具有强大的功能。针对开源项目免费,而私有仓库要收费。把代码托管在该网站上,能受到更多的关注。
Bitbucket: 支持git和mercurial两种版本控制,功能上与github不相上下,仓库既可以公开也可以私有,5人以下仓库免费。
如果是开源项目,想得到更多人关注,那就选Github。
如果是小团队,开发私有项目,想用免费服务的话,那就选用Bitbuket。
Git 简介
软件安装:
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
安装完成后,还需要最后一步设置,在命令行输入:
$ git config --global user.name "yonj1e"
$ git config --global user.email "yonj1e@163.com"
本地 Git 使用:
工作区(Working Directory)就是你在电脑里能看到的目录,比如创建的一个文件夹就是一个工作区。
版本库(Repository)工作区有一个隐藏目录.git
,这个不算工作区,而是Git的版本库。
第一步,选择一个合适的地方,创建一个空目录:
第二步,通过git init
命令把这个目录变成Git可以管理的仓库:
$ git init
Initialized empty Git repository in /G:/yonj1e/.git/
瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),目录下多了一个.git
的目录,默认隐藏的,这个目录是Git来跟踪管理版本库的。
文件添加和提交:
在yonj1e文件夹下创建一个hello文件,内容:Hello World!
第一步,用命令git add
告诉Git,把文件添加到仓库:
$ git add -A
第二步,用命令git commit
告诉Git,把文件提交到仓库:
$ git commit -m "add file hello"
[master 65bbd8e] add file hello
1 file changed, 1 insertion(+), 2 deletions(-)
运行 git log
就可以看到提交的记录了:
$ git log
commit 65bbd8e7d6a1128693dee78c082bf81b85b558fe
Author: yonj1e <yonj1e@163.com>
Date: Fri May 12 14:26:13 2017 +0800
add file hello
commit 5a159f58ca5201dd23305c34379f7089a8d93d43
Author: yonj1e <yonj1e@163.com>
Date: Wed May 10 18:54:35 2017 +0800
Initial commit
本地 Git 和 Github 的关联
现在已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作。
创建SSH Key
由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置:
第1步:Windows下打开Git Bash,创建SSH Key:
$ ssh-keygen -t rsa -C "yonj1e@163.com"
在用户主目录里找到.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人。
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面,然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub
文件的内容。
测试一下吧,执行 ssh -T git@github.com
:
$ ssh -T git@github.com
Hi yonj1e! You've successfully authenticated, but GitHub does not provide shell access.
关联远程仓库
首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库。
然后,在本地的yonj1e仓库下运行命令:
$ git remote add origin git@github.com:yonj1e/yonj1e.git
如果你在创建 repository 的时候,加入了 README.md 或者 LICENSE ,那么 github 会拒绝你的 push 。你需要先执行 git pull --rebase origin master
,将远程库同步到本地。
执行 git push -u origin master
将本地仓库上传至Github的仓库并进行关联:
$ git push -u origin master
Counting objects: 19, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (19/19), done.
Writing objects: 100% (19/19), 13.73 KiB, done.
Total 23 (delta 6), reused 0 (delta 0)
To git@github.com:yonj1e/yonj1e.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
以后想在commit后同步到Github上,只要直接执行 git push
就行啦~
本地 Git 和 BitBucket 的关联
邮箱相同,可使用同一个 ssh-key。
其他步骤不尽相同,bitbucket 有教程。