Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git能够帮助我们解决文件的提交、检出、回溯历史、冲突解决、多人协作模式等问题。
今天我们来介绍一下Git版本管理工具Sourcetree:
SourceTree 是 Windows 和Mac OS X 下免费的 Git 客户端,支持创建、克隆、提交、push、pull 和合并等操作。
SourceTree既有GitBash的命令行,又有EGit的图形化管理,用户界面很人性化,大大简化了开发者与代码库之间的Git操作方式,这对于那些不熟悉Git命令的开发者来说非常实用。
附上Sourcetree的下载地址:
http://pan.baidu.com/s/1kUT5c4v 提取码:qiwu
GitHub
Git是一个分布式的版本控制系统和开源库。
附网上参考博客: http://www.jianshu.com/p/b9077110e39c
注册以及github界面不再详细介绍。
一、创建远程仓库
1. 首先进入个人中心,点击头像选择Your profile

2. 接下来我们选中仓库, New一个新的仓库

3. 具体创建仓库的操作如下图


二、配置SSH Key
当我们使用GitHub时,每次进行push操作都需要我们登录用户名和密码,这样会大大的降低效率,对于我们可以在上传的时候采用另外一种解决办法—SSH key, SSH key 可以帮我们记住用户名,而且还会对我们的密码进行特殊的保护。
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
1. 检查并删除ssh key
配置之前,我们先检查一下电脑中是否存在.ssh文件, 如果有就删掉我们从新配置, 具体步骤如下:
点击Finder,前往文件夹, jens是我的主机名称,操作的时候写成自己的

说明: 这个.ssh文件属于隐藏文件,我们可以通过 终端 显示隐藏文件
显示Mac隐藏文件的命令:defaultswritecom.apple.finderAppleShowAllFilesYES 隐藏Mac隐藏文件的命令:defaultswritecom.apple.finderAppleShowAllFilesNO

做完如上步骤, 我们检查一下要上传的项目中是否存在.git的文件,如果存在也给删除掉(这里我用一个空白的demo做测试)

2. 使用终端创建新的.ssh文件
为了防止出错,以下命令建议赋值粘贴
mkdir .ssh
3. 切换当前目录到.ssh文件夹下
cd .ssh
4. 创建公钥和私钥
ssh-keygen -t rsa -C"输入你的邮箱"
接下来会让我们输入密码之类的,直接回车,不做任何操作, 如下图

5. 查看是否存在 id_rsa(私钥) id_rsa.pub(公钥),存在就成功了。
ls -la

6. 拷贝公钥
pbcopy < ~/.ssh/id_rsa.pub
7. 在GitHub上配置公钥


由于我们刚刚执行copy命令,上面直接cmd+v就可以了,然后add ssh key


8. 执行如下命令
ssh -Tgit@github.com


三、上传本地项目到GitHub
1. 建议Git仓库
如果你要上传的项目目录下存在 .git文件,建议删除; 使用终端切换到你要上传的目录下面, 执行
git init

2. 将项目中所有文件添加到仓库中
注意add 后有个 . 建议赋值粘贴
git add .
3. 将我们添加的文件commit到git仓库, 添加注释
git commit -m "注释语句"
4. 接下来我们将本地的仓库与github上的仓库进行关联
git remote add origin github上仓库的地址

5. 上传之前我们先从git上拉取一下
git pull origin master
这个过程,可能会让你输入github的账户名和密码(注意:密码输入不显示),输入完成之后会出现如下的截图

这是vi编译器的窗口,不需要我们做操作,直接退出就可以,
点击Esc,输入 :wq,回车
6. push本地项目到远程仓库
git push -u origin master

此时我们看到又要我们输入git账号和密码,输入即可!等待完成我们就可以在github上看到我们的项目。

上传本地项目,到这里就结束了,下面我们介绍一下,git版本管理工具的简单使用。
四、Sourcetree与GitHub的简单结合使用
1. 认识sourcetree界面
界面一

安装的时候,会提示让你登录,直接登录你的github账号就可以了。
选中某一个项目进入界面二(工作副本)

界面三(master)

2. 熟悉一下几个操作
commit — 提交修改的内容到本地的仓库
pull — 从远程仓库进行拉取修改的代码块
push — 把本地修改的内容推送到远程仓库
3. 从远程仓库clone(克隆)项目到本地
这里我们介绍两种克隆方法 :
第一种:https url,对于使用git的初学者来说比较简单,我们只需要赋值https 的url链接,使用git版本管理工具 或者 命令行指令 克隆到本地就可以。
第二种:SSH url,如果想要使用SSH url进行克隆,我们克隆前需要配置SSH key
a. 复制克隆的链接地址, 这里我们使用ssh url 克隆。

b. 打开sourcetree,从URL创建一个克隆的项目

c. 输入步骤a中复制的地址

d. 克隆成功后双击打开如下界面

我们在克隆的过程中,可能会让我们输入账号和密码,记得输入git的账号密码即可!
4、修改项目push到远程服务器
a. 下面我们打开从github上克隆到本地的项目, 做少许的修改。

b. 然后我们发现sourcetree界面发生了改变,它会统计到我们所做的一些修改信息

c. 接下来,我们提交修改的内容到github

步骤3如果都选上,相当于我们把修改内容即commit到本地仓库,又push到远程仓库,
如果我们不勾选点提交,还需要我们点击菜单栏上的 “推送” 向远程仓库push推送修改内容,
如果不报错,就代表push成功。
d. 检查github上的仓库是否发生变化

5. 从远程拉取修改内容
保存修改内容的时候, 默认勾选 “Commit directly to the master branch.”,把修改内容添加到主分支。

接下来我们就可以使用sourcetree进行拉取pull, 拉取时弹出的提示框,默认选择直接确定就好

检查一下,我们会看到本地仓库与远程仓库进行同步
