本节先简单介绍 git 的使用与操做, 而后再介绍 TortoiseGit 的使用与操做.css
先看看SVN的操做吧, 最多见的是 检出(Check out ...), 更新 (Update ...), 以及 提交(Commit ...); 至关于有一个服务器端, 能够多个客户端进行访问和操做.git
Git是SVN之后的新一代的版本控制系统/协议. 适合于大规模的开源软件多人协做的开发. 有一个总仓库(如GitHub,CSDN,OSchina等提供), 每一个客户端都有一个本地仓库(这个本地仓库有点对应于SVN的服务端仓库), 以及一个能够看见的本地项目.github
让咱们想一想,至少须要有哪些功能.以 GitHub为例,首先,必须得有一个线上仓库(Repository), 这首先得新建一个仓库.sql
要建立仓库,必须得先 注册帐号 . 请参考: 建立GitHub技术博客全攻略: http://blog.csdn.net/renfufei/article/details/37725057浏览器
而后,登陆 GitHub, 在右上角找到 New Repository 或者 加号下拉按钮(+),点击进入新建仓库页面: https://github.com/new , 以下图所示:安全
依次填写仓库名,以及其余信息后,点击 " Create repository " 按钮,便可建立一个在线仓库. 由于这个仓库是挂在你的帐号下的,因此能够是任意合法的字符,只要和你的其余仓库不冲突便可.bash
仓库建立成功后,就会进入仓库预览页面, 以下图所示:服务器
而后,咱们能够点击右边的 HTTPS 连接, 上方的文本框里面就显示了 HTTPS协议下的仓库访问地址, 能够点击进去全选,也能够点击右边的复制按钮复制到剪贴板. 例如,刚刚建立的项目访问路径是:app
https://github.com/cncounter/LispGentleIntro.git
是一个以 https:// 开始,以 .git 结尾的 URL,根据提示,叫作 clone URL.fetch
好了,仓库建立完成,能够进入下一步了.
若是你偏心命令行,那么能够简单参考下这一小节. 不然,请往下翻,直接看 TortoiseGit使用与操做
Win+R 快捷键打开运行对话框,输入 cmd
回车, 在 cmd 中(其实在 GitBash中也能够), cd 切换到存放git项目的目录, 如:
Microsoft Windows [版本 6.1.7601] 版权全部 (c) 2009 Microsoft Corporation。保留全部权利。 C:\Users\Administrator>F: F:\>cd GIT_ALL
而后执行命令: git clone https://github.com/cncounter/LispGentleIntro.git
,就会把项目克隆到当前目录下, 项目的目录名字默认为 LispGentleIntro .
F:\GIT_ALL>git clone https://github.com/cncounter/LispGentleIntro.git
Cloning into 'LispGentleIntro'... remote: Counting objects: 5, done. remote: Compressing objects: 100% (4/4), done. remote: Total 5 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (5/5), done. Checking connectivity... done.
命令行截图以下:
而后能够 cd
切换到 LispGentleIntro 目录, 新增或者修改某些文件.这里只是模拟一下操做. 实际状况多是 使用 Eclipse 导入项目(不要拷贝,Copy...)进行一些编辑, 而后将当前目录下的全部有变更的文件告诉索引库,接着提交到本地仓库.
F:\GIT_ALL>cd LispGentleIntro
F:\GIT_ALL\LispGentleIntro>echo some content >> cncounter.txt
F:\GIT_ALL\LispGentleIntro>echo by cncounter >> README.md
F:\GIT_ALL\LispGentleIntro>git add .
F:\GIT_ALL\LispGentleIntro>git commit -m "add some info." [master 86d090f] add some info. 2 files changed, 4 insertions(+) create mode 100644 cncounter.txt
提交到本地仓库有什么好处呢? 本地仓库就是一个版本管理库,咱们在编写代码时,若是写错了,那么可能须要 Ctrl+Z 来撤销,撤销撤销,若是不少,并且跨文件,就很麻烦,可能须要Copy文件什么的。 这时候本地仓库就颇有用了. 修改到某个阶段,而后就提交到本地仓库. 能够有效防止丢失,方便回退. 并且,提交到本地仓库不会影响别人看到的内容(只有本机可见).
若是完成到必定程度,那么能够推送到远端在线仓库. 推送以前,请确保你已经设置了全局的 user.name
和 user.email
, 若是没有设置,或者不想使用全局的信息,能够在当前项目下设置:
F:\GIT_ALL\LispGentleIntro>git config user.name "renfufei" F:\GIT_ALL\LispGentleIntro>git config user.email "renfufei@qq.com"
接着,能够执行推送(push), 推送就是将已经提交到本地仓库的那部份内容给推到远端在线仓库.(修改了,但没提交的那部份内容,不会被推送). 执行 git push
命令便可:
F:\GIT_ALL\LispGentleIntro>git push
Username for 'https://github.com': renfufei Password for 'https://renfufei@github.com': Counting objects: 6, done. Delta compression using up to 8 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (4/4), 402 bytes | 0 bytes/s, done. Total 4 (delta 1), reused 0 (delta 0) To https://github.com/cncounter/LispGentleIntro.git e8c0fb1..6407079 master -> master
在链接上远端服务器以后,会要求你输入用户名与密码. 其中,用户名是你注册GitHub时的帐号,不是邮箱. 接着是密码,注意密码是没有回显的,也就是为了安全,不告诉你具体输入了几个字符,输入完成回车便可. 截图以下:
好了,推送完成,这时候用浏览器打开在线仓库,看看内容是否是已经变了?
固然,若是多人协做, 或者多个客户端进行修改, 那么咱们还要拉取(Pull ... )别人推送到在线仓库的内容下来。 大神们是不推荐使用 pull 命令进行拉取的, 由于封装了细节(git pull == git fetch + git merge). 对于这群更喜欢用命令行的神们来讲, 一切在掌控之中是一种强迫症!!!(开个玩笑, 其实项目成员复杂,约定很差之后, pull 确实会有不少问题,会坑人.)
常规使用,咱们执行 git pull
便可:
F:\GIT_ALL\LispGentleIntro>git pull Already up-to-date.
固然,由于没有其余文件被修改,因此直接提示 已经更新到最新. 常规操做就这些,须要注意的是,和使用SVN的好习惯同样,你在修改本地内容以前,最好先 pull 一下,减小冲突的可能.
使用 Git命令有时候确实不怎么方便,特别是每次都要输入密码,若是配置 SSH 的方式,又实在是很麻烦.(固然,必须使用 Windows 神器才有方便友好的客户端图形界面啦!!!)
关于 TortoiseGit 的安装请参考 前一小节 .
打开资源管理器(个人电脑/计算机), 进入规划好的某个目录中, 而后在空白处点击鼠标右键, 选择 TortoiseGit --> 克隆... (Clone...).
弹出克隆项目对话框:
在对话框的 URL中输入项目地址,如:
https://github.com/cncounter/LispGentleIntro.git
肯定本地目录,而后点击 肯定 按钮. 等待完成后,点击关闭按钮便可.
项目克隆完成后(能够将克隆 clone 理解为 下载, 检出 checkout 操做). 修改本地项目中的某些文件,如 将 README.md
修改成以下内容:
LispGentleIntro
===============
Lisp-符号计算入门指引翻译
<a href="http://cncounter.duapp.com/">天朝计数器</a>
还能够试试增长一些文件. 如 files.txt
.
而后在本地项目的空白处点击鼠标右键, 选择 TortoiseGit --> 提交(C) -> "master"...或: Commit -> "master"....
弹出提交(Commit)对话框:
做为好习惯,填写提交日志,勾选须要提交的文件,而后点击 "肯定" 按钮, 即提交到本地仓库.
推送是提交的下一步操做.
在本地项目的空白处点击鼠标右键, 选择 TortoiseGit --> 推送... 或: Push....
弹出推送(push)对话框:
通常保持默认,点击 “ 肯定 ” 按钮.
而后弹出推送进度界面, 可能要求你输入用户名:
肯定OK,而后要求输入密码:
密码输入正确后,OK,显示推送成功界面:
若是你按照上一小节的设置操做,则输入密码之后会记住密码. 密码会明文保存在C:\Users\Administrator\.git-credentials
这种文件中, 请当心使用.
若是本地的项目没有在线仓库的新,则须要执行拉取操做(Pull ...).
在本地项目的空白处点击鼠标右键, 选择 TortoiseGit --> 拉取... 或: Pull....
弹出拉取(pull)对话框:
若是拉取有BUG,则能够勾选上变基(不报错就别勾选了!!!), 肯定,进入 拉取进度界面:
而后执行变基:
而后完成便可.
这应该是 TortoiseGit 的一个BUG, 要解决这个问题,请参考 解决 TortoiseGit 诡异的 Bad file number 问题 (或者能够换回老版本. 若是你没有出这个问题,那么,多是个人机器哪里损坏了).
http://www.tuicool.com/articles/naIF73