1. GitHub操作

本节先简单介绍 git 的使用与操作, 然后再介绍 TortoiseGit 的使用与操作.

先看看SVN的操作吧, 最常见的是 检出(Check out ...), 更新 (Update ...), 以及 提交(Commit ...); 相当于有一个服务器端, 可以多个客户端进行访问和操作.

Git是SVN以后的新一代的版本控制系统/协议. 适合于大规模的开源软件多人协作的开发. 有一个总仓库(如GitHub,CSDN,OSchina等提供), 每个客户端都有一个本地仓库(这个本地仓库有点对应于SVN的服务端仓库), 以及一个可以看见的本地项目.

让我们想想,至少需要有哪些功能.以 GitHub为例,首先,必须得有一个线上仓库(Repository), 这首先得新建一个仓库.

要创建仓库,必须得先 注册账号 . 请参考:  创建GitHub技术博客全攻略: http://blog.csdn.net/renfufei/article/details/37725057

然后,登录 GitHub, 在右上角找到 New Repository 或者 加号下拉按钮(+),点击进入新建仓库页面: https://github.com/new , 如下图所示:

依次填写仓库名,以及其他信息后,点击 " Create repository " 按钮,即可创建一个在线仓库. 因为这个仓库是挂在你的账号下的,所以可以是任意合法的字符,只要和你的其他仓库不冲突即可.

仓库创建成功后,就会进入仓库预览页面, 如下图所示:

然后,我们可以点击右边的 HTTPS 链接, 上方的文本框里面就显示了 HTTPS协议下的仓库访问地址, 可以点击进去全选,也可以点击右边的复制按钮复制到剪贴板. 例如,刚刚创建的项目访问路径是:

https://github.com/cncounter/LispGentleIntro.git

是一个以 https:// 开始,以 .git 结尾的 URL,根据提示,叫做 clone URL.

好了,仓库创建完成,可以进入下一步了.

如果你偏爱命令行,那么可以简单参考下这一小节. 否则,请往下翻,直接看 TortoiseGit使用与操作

2.1 克隆项目(clone ...)

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.

命令行截图如下:

2.2 提交项目(commit ...)

然后可以 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文件什么的。 这时候本地仓库就很有用了. 修改到某个阶段,然后就提交到本地仓库. 可以有效防止丢失,方便回退. 而且,提交到本地仓库不会影响别人看到的内容(只有本机可见).

2.3 推送项目(push ...)

如果完成到一定程度,那么可以推送到远端在线仓库. 推送之前,请确保你已经设置了全局的 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时的账号,不是邮箱. 接着是密码,注意密码是没有回显的,也就是为了安全,不告诉你具体输入了几个字符,输入完成回车即可. 截图如下:

好了,推送完成,这时候用浏览器打开在线仓库,看看内容是不是已经变了?

2.4 拉取项目(pull ...)

当然,如果多人协作, 或者多个客户端进行修改, 那么我们还要拉取(Pull ... )别人推送到在线仓库的内容下来。 大神们是不推荐使用 pull 命令进行拉取的, 因为封装了细节(git pull == git fetch + git merge). 对于这群更喜欢用命令行的神们来说, 一切在掌控之中是一种强迫症!!!(开个玩笑, 其实项目成员复杂,约定不好以后, pull 确实会有很多问题,会坑人.)

常规使用,我们执行 git pull 即可:

F:\GIT_ALL\LispGentleIntro>git pull
Already up-to-date.

当然,因为没有其他文件被修改,所以直接提示 已经更新到最新. 常规操作就这些,需要注意的是,和使用SVN的好习惯一样,你在修改本地内容之前,最好先 pull 一下,减少冲突的可能.

3.  TortoiseGit使用与操作

使用 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)对话框:

作为好习惯,填写提交日志,勾选需要提交的文件,然后点击 "确定" 按钮, 即提交到本地仓库.

3.3 将提交到本地的项目推送到在线仓库

推送是提交的下一步操作.

在本地项目的空白处点击鼠标右键, 选择 TortoiseGit --> 推送... 或: Push....

弹出推送(push)对话框:

一般保持默认,点击 “ 确定 ” 按钮.

然后弹出推送进度界面, 可能要求你输入用户名:

确定OK,然后要求输入密码:

密码输入正确后,OK,显示推送成功界面:

如果你按照上一小节的设置操作,则输入密码以后会记住密码. 密码会明文保存在C:\Users\Administrator\.git-credentials 这种文件中, 请小心使用.

3.4 拉取项目(pull ...)

如果本地的项目没有在线仓库的新,则需要执行拉取操作(Pull ...).

在本地项目的空白处点击鼠标右键, 选择 TortoiseGit --> 拉取... 或: Pull....

弹出拉取(pull)对话框:

如果拉取有BUG,则可以勾选上变基(不报错就别勾选了!!!), 确定,进入 拉取进度界面:

然后执行变基:

然后完成即可.

这应该是 TortoiseGit 的一个BUG, 要解决这个问题,请参考 解决 TortoiseGit 诡异的 Bad file number 问题 (或者可以换回老版本. 如果你没有出这个问题,那么,可能是我的机器哪里损坏了).

http://www.tuicool.com/articles/naIF73

Git与TortoiseGit基本操作(转)的更多相关文章

  1. Git与TortoiseGit基本操作

    Git与TortoiseGit基本操作 1. GitHub操作 本节先简单介绍 git 的使用与操作, 然后再介绍 TortoiseGit 的使用与操作. 先看看SVN的操作吧, 最常见的是 检出(C ...

  2. 3. Git与TortoiseGit基本操作

    1. GitHub操作 本节先简单介绍 git 的使用与操作, 然后再介绍 TortoiseGit 的使用与操作. 先看看SVN的操作吧, 最常见的是 检出(Check out ...), 更新 (U ...

  3. windows安装配置git和Tortoisegit

    git github  gitlab  Tortoisegit 的概念自行百度 1. 安装git 2. 安装小乌龟:Tortoisegit  和中文包 3. 配置 4. 使用 参考: 目录 安装及配置 ...

  4. TortoiseGit学习系列之TortoiseGit基本操作克隆项目(图文详解)

    前面博客 全网最详细的Git学习系列之介绍各个Git图形客户端(Windows.Linux.Mac系统皆适用ing)(图文详解) 全网最详细的Git学习系列之安装各个Git图形客户端(Windows. ...

  5. Git/Github + TortoiseGit 使用教程

    前言 Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. 在github上有很多优秀的项目,一个伟大的学习宝库.本文分享使用tortoisegit对github/ ...

  6. git常用命令-基本操作

    git常用命令-基本操作 1)      新增文件 新增了Test_1.java git add Test_1.java git commit –m “新增了Test_1.java” git push ...

  7. git 分支的基本操作

    git分支的基本操作. 创建私有分支:     $git branch branchName commitID     $git checkout -b branchName commitID 注意: ...

  8. Git在tortoiseGit以及eclipse的使用方法

    一.Git安装与简单使用 1.安装git,tortoiseGit 2.创建SSH Key 打开Git Bash,然后输入ssh-keygen生成公钥和私钥: 3.生成ppk文件. 打开puttykey ...

  9. Git以及TortoiseGit的下载安装使用

    Git以及TortoiseGit的下载安装使用 下载git 下载地址:https://git-scm.com/然后进行一系列的安装,傻瓜式的操作即可 TortoiseGit Tortoise 英[ˈt ...

随机推荐

  1. 新秀学习51供应链管理的----模拟笔记本PC和51串行通讯1

    说明: MCU系列文章为我们的球队文章的其他成员.发表在原创和非网络.章集中于此 原地址:http://www.eefocus.com/bbs/article_1156_541662.html 转载须 ...

  2. BackTrack5 (BT5)无线password破解教程WPA/WPA2-PSK无线password皴

    昨天公布了BackTrack5 (BT5)无线weppassword破解教程之minidwep-gtk破解法一文,对BT5下破解wep无线password的简单方法做了介绍,今天奶牛为朋友们介绍下怎样 ...

  3. oracle 选择最频繁出现之前,5文章数据

    SELECT * FROM ( SELECT PROJECT_LISTING.MATERIAL, COUNT (*) AS "出现次数" FROM PROJECT_LISTING ...

  4. Effective C++ 条款44

    本节条款的标题是:将与參数无关的代码抽离templates 学习本节条款首先须要明确一件事情,那就是模板实例化的过程会不会反复? 我们来举个样例: #include<iostream> u ...

  5. 解决mysqldb查询大量数据导致内存使用过高的问题

    1.源码 connection=MySQLdb.connect( host="thehost",user="theuser", passwd="the ...

  6. ZenCoding for EmEditor Snippets 的安装

    ZenCoding for EmEditor的安装 你可以从这里下载所需文件Library under the Snippets category.安装前请确认你的EmEditor内置有代码片段(Sn ...

  7. hdu 5077 NAND(暴力打表)

    题目链接:hdu 5077 NAND 题目大意:Xiaoqiang要写一个编码程序,然后依据x1,x2,x3的值构造出8个字符.如今给定要求生成的8个字符.问 说Xiaoqiang最少要写多少行代码. ...

  8. ICT工作的思考&lt;两&gt;

    2周奋战.我负责的LB昨天完成了最后一个模块.最后20日. 一周早于预期,经理说,出乎他的意料.So 奖励表,昨日,管理人员与我们合作,吃烧烤补补身子.我只想说,最后一个喘息. 这两周的生活确挺忙碌的 ...

  9. 简单vector达到

    得知c++于,看完这本书后,,最近苦于不知道下一步该怎么做了,在寻找STL在各种容器的源代码分析,我想一次又一次地实现它. 之前,很多问题看的时候不知道是怎么回事,意与理解的.这个vector类写得特 ...

  10. 跨域请求jQuery的ajax jsonp使用常见问题解答

    前天在项目中写了ajax jsonp的使用,出现了问题:能够成功获得请求结果,但没有运行success方法,直接运行了error方法提示错误--ajax jsonp之前并没实用过.对其的理解为跟普通的 ...