- 浏览: 40224 次
- 性别:
- 来自: 北京
文章分类
最新评论
================
Windows下Git与TortoiseGit使用教程(Github为例)(二)
准备工作
软件安装
我指的是Windows下。由于Git从来没有官方的windows版(可以理解,linus做的嘛),windows下有两种非官方使用途径,一个是Cygwin,另一个是msysGit。Cygwin比较凶残,直接把Gnu工具集转移到了windows上,不过不推荐,cygwin这个东西,如果不做嵌入式,不需要交叉编译,用不着这么凶残,msysGit就足够了,也更简单。目前是1.8.0。
TortoiseGit同时支持两种使用Git的方式。它只是一个壳,实际调用的还是Git本身。这两个软件安装也没有什么好说的,除了安装路径之外,其他的全部默认就OK。
TortoiseGit安装后,请设置好你的姓名邮箱,这将会记录到版本信息中。开始菜单找到tortoisegit的settings就可以了,不用细说吧?
密钥
Git的身份验证不是密码,而是密钥。通常我们会有一个Git服务器,而我们的电脑就是工作机,我们需要一个RSA密钥来确认身份。密钥分为两个:私有的和公开的,其实是这样,公开的存放在服务器上,而私有的放在你手里,核对的时候通过一系列复杂算法就可以匹配了。私有密钥绝对不要被其他人看到,这是一个项目中,确认每个人身份的标识。
密钥可以用命令行生成一个。不过我们有TortoiseGit,看一下TortoiseGit的开始菜单,是不是有一个叫Puttygen的东西?密钥这个东西有很多工具都可以生成,Puttygen就是个图形化的工具。使用很简单,只要运行Puttygen,把右下角的数值改成4096(这个是最长的)然后点击“Generate”就可以了。点击之后它会要求你随机移动鼠标,直到进度条满为止。
生成完之后呢?千万不要关闭这个窗口!要是手贱关了,那么……再来一遍吧。你要在passphrase和下面的确认框输入密码,这个密码你自己写咯,不过记着哦。写好之后,点“save private key”保存就行。
Public key是填在服务器上的,我们以github为例,如果是别的代码托管网站,或者你自己搭建,原理都一样。打开你的Github账户,Edit YourProfile,然后SSH keys,然后add,然后把putty生成的public key贴进去就行了。
Github的那点事
Github是开源社区目前最活跃的项目托管网站,类似的网站还有SourceForge,bitbucket,google code等,每个网站支持的版本控制系统不一样,主要就是SVN、Git与Hg,github仅支持Git,其他协议需要很麻烦的插件来扩展,一般很少会用。
尽管Git本身是分布式的,但我们通常仍然需要一个中心的作为标准的服务器,方便协同开发。Github就是起到了这个作用。
通常我们这样进行协同开发:项目有几个成员,创建者在Github上创建项目,并把其他人添加到项目中。项目组成员可以直接向中心库提交代码,而其他人如果想参与进来,就需要用“fork”创建一个项目的分支副本,然后向原始项目提交合并申请,非项目组成员的提交是需要批准才能合并的。这也是通常的开源软件的开发模式:核心成员主导方向,所有开发人员都可以参与进来。
当然了,非开源项目就没有那么麻烦,只要项目成员向中心库提交代码就行了
================
当使用时,会出现以下三种情况的中文乱码:
1. ls不能显示中文目录
解决办法:在git/etc/git-completion.bash中增加一行:
alias ls='ls --show-control-chars --color=auto'
2. git commit不能提交中文注释
解决办法:修改git/etc/inputrc中对应的行:
set output-meta on
set convert-meta off
3.git log无法显示中文注释
解决办法:在git/etc/profile中增加一行:
export LESSCHARSET=iso8859
==========
远程版本库的使用
尽管git在本地也可以方便地进行版本管理,但是多人协作,或者是多地操作时,总需要使用到远程仓库来进行版本维护。在前面创建版本库的内容中其实使用clone命名就已经是在与远程版本库进行交互了,clone远程库后便会自动创建一个名为origin的远程库,可以使用git remote -v命名查看远程库的详细信息。
$ git remote -v
而在实际工作中,我们可能需要频繁地与某一个或几个远程库交互,那么更好的办法是使用一个别名把远程库保存起来。git添加远程库的方法很简单:
# $ git remote add <name> <remote-url>
$ git remote add pro-git https://github.com/progit/progit.git
这样便将https://github.com/progit/progit.git这个远程git版本库添加并命名为pro-git,后续你只需要使用pro-git便可以指代progit的远程库。
push
当你完成本地工作,并将改动提交到本地版本库后,你便可以使用push将本地提交推送到远程仓库了:
# $ git push <remote-name> <branch-name>
$ git push pro-git master
默认会使用origin和master作为远程仓库和本地分支的名称。
当然你也可以将本地分支推送到远程仓库作为一个分支:
# $ git push <remote-name> <local-branch>:<remote-branch>
$ git push pro-git master:git-branch
当<local-branch>为空时,会尝试删除远程分支:
$ git push pro-git :git-branch
上述命令会删除远程仓库中的”git-branch”分支
fetch与pull
fetch与pull命令都会将一个远程仓库抓取到本地,不同的是fetch仅仅是将远程仓库抓取到本地,以供进行后续操作;pull除了将远程仓库抓取到本地,还会试图与本地当前分支进行合并。
他们与clone不同的是,clone会copy一份版本仓库到本地,如果本地已存在版本仓库,则会被clone后的仓库替换。而fetch和pull都需要在已有本地仓库的条件下操作,不能作为创建本地仓库的方法,即是必须先git init或是git clone后才能使用fetch和pull。
删除远程仓库
$ git remote -d <remote-name>
准确一点说,这只是删除远程仓库在本地的别名,而不是真正删除远程服务器上的git仓库。
重命名远程仓库
$ git remote rename oldname newname
Git别名
虽然git中很多命名都简单易记,但每次都手动输入这些命令确实会浪费不少时间,而且也有那么些命令选项非常冗长,这时就可以使用别名来简化命令的输入了。
别名属于配置项内容,所以需要使用git config命令,如可以为“checkout -b”命令配置别名“cob”
$ git config --global alias.cob 'checkout -b'
为“commit -a -m”配置别名“cam”:
$ git config --global alias.cam 'commit -a -m'
为单行图像化显示log命令“log –pretty=oneline –graph”配置别名“lol”:
$ git config --global alias.lol 'log --pretty=oneline --graph'
至此,git基础篇结束。你已经可以使用git进行日常的代码管理维护,下一篇进阶篇将着重介绍分支,git配置,git原理以及github等内容。
==========
Windows下Git与TortoiseGit使用教程(Github为例)(二)
准备工作
软件安装
我指的是Windows下。由于Git从来没有官方的windows版(可以理解,linus做的嘛),windows下有两种非官方使用途径,一个是Cygwin,另一个是msysGit。Cygwin比较凶残,直接把Gnu工具集转移到了windows上,不过不推荐,cygwin这个东西,如果不做嵌入式,不需要交叉编译,用不着这么凶残,msysGit就足够了,也更简单。目前是1.8.0。
TortoiseGit同时支持两种使用Git的方式。它只是一个壳,实际调用的还是Git本身。这两个软件安装也没有什么好说的,除了安装路径之外,其他的全部默认就OK。
TortoiseGit安装后,请设置好你的姓名邮箱,这将会记录到版本信息中。开始菜单找到tortoisegit的settings就可以了,不用细说吧?
密钥
Git的身份验证不是密码,而是密钥。通常我们会有一个Git服务器,而我们的电脑就是工作机,我们需要一个RSA密钥来确认身份。密钥分为两个:私有的和公开的,其实是这样,公开的存放在服务器上,而私有的放在你手里,核对的时候通过一系列复杂算法就可以匹配了。私有密钥绝对不要被其他人看到,这是一个项目中,确认每个人身份的标识。
密钥可以用命令行生成一个。不过我们有TortoiseGit,看一下TortoiseGit的开始菜单,是不是有一个叫Puttygen的东西?密钥这个东西有很多工具都可以生成,Puttygen就是个图形化的工具。使用很简单,只要运行Puttygen,把右下角的数值改成4096(这个是最长的)然后点击“Generate”就可以了。点击之后它会要求你随机移动鼠标,直到进度条满为止。
生成完之后呢?千万不要关闭这个窗口!要是手贱关了,那么……再来一遍吧。你要在passphrase和下面的确认框输入密码,这个密码你自己写咯,不过记着哦。写好之后,点“save private key”保存就行。
Public key是填在服务器上的,我们以github为例,如果是别的代码托管网站,或者你自己搭建,原理都一样。打开你的Github账户,Edit YourProfile,然后SSH keys,然后add,然后把putty生成的public key贴进去就行了。
Github的那点事
Github是开源社区目前最活跃的项目托管网站,类似的网站还有SourceForge,bitbucket,google code等,每个网站支持的版本控制系统不一样,主要就是SVN、Git与Hg,github仅支持Git,其他协议需要很麻烦的插件来扩展,一般很少会用。
尽管Git本身是分布式的,但我们通常仍然需要一个中心的作为标准的服务器,方便协同开发。Github就是起到了这个作用。
通常我们这样进行协同开发:项目有几个成员,创建者在Github上创建项目,并把其他人添加到项目中。项目组成员可以直接向中心库提交代码,而其他人如果想参与进来,就需要用“fork”创建一个项目的分支副本,然后向原始项目提交合并申请,非项目组成员的提交是需要批准才能合并的。这也是通常的开源软件的开发模式:核心成员主导方向,所有开发人员都可以参与进来。
当然了,非开源项目就没有那么麻烦,只要项目成员向中心库提交代码就行了
================
当使用时,会出现以下三种情况的中文乱码:
1. ls不能显示中文目录
解决办法:在git/etc/git-completion.bash中增加一行:
alias ls='ls --show-control-chars --color=auto'
2. git commit不能提交中文注释
解决办法:修改git/etc/inputrc中对应的行:
set output-meta on
set convert-meta off
3.git log无法显示中文注释
解决办法:在git/etc/profile中增加一行:
export LESSCHARSET=iso8859
==========
远程版本库的使用
尽管git在本地也可以方便地进行版本管理,但是多人协作,或者是多地操作时,总需要使用到远程仓库来进行版本维护。在前面创建版本库的内容中其实使用clone命名就已经是在与远程版本库进行交互了,clone远程库后便会自动创建一个名为origin的远程库,可以使用git remote -v命名查看远程库的详细信息。
$ git remote -v
而在实际工作中,我们可能需要频繁地与某一个或几个远程库交互,那么更好的办法是使用一个别名把远程库保存起来。git添加远程库的方法很简单:
# $ git remote add <name> <remote-url>
$ git remote add pro-git https://github.com/progit/progit.git
这样便将https://github.com/progit/progit.git这个远程git版本库添加并命名为pro-git,后续你只需要使用pro-git便可以指代progit的远程库。
push
当你完成本地工作,并将改动提交到本地版本库后,你便可以使用push将本地提交推送到远程仓库了:
# $ git push <remote-name> <branch-name>
$ git push pro-git master
默认会使用origin和master作为远程仓库和本地分支的名称。
当然你也可以将本地分支推送到远程仓库作为一个分支:
# $ git push <remote-name> <local-branch>:<remote-branch>
$ git push pro-git master:git-branch
当<local-branch>为空时,会尝试删除远程分支:
$ git push pro-git :git-branch
上述命令会删除远程仓库中的”git-branch”分支
fetch与pull
fetch与pull命令都会将一个远程仓库抓取到本地,不同的是fetch仅仅是将远程仓库抓取到本地,以供进行后续操作;pull除了将远程仓库抓取到本地,还会试图与本地当前分支进行合并。
他们与clone不同的是,clone会copy一份版本仓库到本地,如果本地已存在版本仓库,则会被clone后的仓库替换。而fetch和pull都需要在已有本地仓库的条件下操作,不能作为创建本地仓库的方法,即是必须先git init或是git clone后才能使用fetch和pull。
删除远程仓库
$ git remote -d <remote-name>
准确一点说,这只是删除远程仓库在本地的别名,而不是真正删除远程服务器上的git仓库。
重命名远程仓库
$ git remote rename oldname newname
Git别名
虽然git中很多命名都简单易记,但每次都手动输入这些命令确实会浪费不少时间,而且也有那么些命令选项非常冗长,这时就可以使用别名来简化命令的输入了。
别名属于配置项内容,所以需要使用git config命令,如可以为“checkout -b”命令配置别名“cob”
$ git config --global alias.cob 'checkout -b'
为“commit -a -m”配置别名“cam”:
$ git config --global alias.cam 'commit -a -m'
为单行图像化显示log命令“log –pretty=oneline –graph”配置别名“lol”:
$ git config --global alias.lol 'log --pretty=oneline --graph'
至此,git基础篇结束。你已经可以使用git进行日常的代码管理维护,下一篇进阶篇将着重介绍分支,git配置,git原理以及github等内容。
==========
发表评论
-
王码五笔98版字根表
2013-03-05 16:10 0http://f.hiphotos.baidu.com/z ... -
房——税_秘书_志愿军
2013-03-04 16:10 0=== 据 负伤、阵亡、病故、失踪、被俘,共978122人,占 ... -
净土宗
2013-02-28 13:27 0(汉语读音释迦牟尼shì jiā móu ní,牟为多音字,在 ... -
(转)[链家_房] 放假_2013年2月7日(四)至2013年2月18日共放假12天。
2013-01-29 17:21 02013年2月7日至2013年2月18 ... -
(转) SVG 北京市环境保护监测中心_网站用SVG显示PM2.5
2013-01-29 15:53 0http://www.bjmemc.com.cn/ 显 ... -
(转)开发语言QT, 什么语言开发
2013-01-28 13:06 0悄悄的告诉楼主,Skype是用Qt开发的,Goolge Ear ... -
(转)旅馆_北京齐鲁饭店_蒙养园_
2013-01-25 12:51 0北京齐鲁饭店 北京齐鲁饭店 北京 西城区 地安门西大街103 ... -
(转)Chrome下强制http重定向到https的方法(google)
2013-01-24 13:50 0======== https://linost.com/ pr ... -
(转)鱼跃制氧机 8F-3
2013-01-28 23:41 535鱼跃制氧机 8f-3 2900 yuan -
(转) 书法笔顺 _ Word 2007_书法字帖_停止保护_密码
2013-01-23 20:27 0=============钢笔 派克51 凌美狩猎、写乐21K ... -
(转)兰亭序_永和九年
2013-01-22 15:11 0原文 怀禅微刻 ... -
(转) 网站统计_2_名词
2013-02-25 08:06 764============= Alexa 统计 ... -
(转) (网站统计)网站页面浏览数量统计指标真实意义的讨论
2013-01-22 08:48 0网站页面浏览数量统计指标真实意义的讨论 (www.mark ... -
(转) 网站统计 谷歌页面嵌入一个1像素的图片
2013-01-21 15:28 0但是在Google Analytics的Content统计中 ... -
(转) GIT WindowsXP下搭建Git服务器_4
2013-02-25 08:04 604WindowsXP下搭建Git服务器 ... -
(转) GIT 基于GitStack搭建Git核心服务器_3
2013-02-25 08:04 1118最简单的windows平台Git服务器---Gi ... -
(转)GIT 搭建 Windows上的Git服务器_2
2013-01-21 13:22 0目前在windows平台上的git服务器大多数采用CopSSH ... -
(转)GIT 搭建 Windows上的Git服务器_ Apache
2013-02-25 08:04 731在公司一直使用 SVN 作版本控制,不过 SVN 的 bran ... -
川琥宁
2013-01-21 08:44 0川琥宁.... -
(转) [GIT] Eclipse下设置github开发环境
2013-02-25 08:03 958=================== Eclipse上GI ...
相关推荐
git-for-windows.github.io, 用于 Windows的upcoming版本 2.x的网站 Windows 主页的Githttp://git-for-windows.github.io/开发git clone https://github.com/git-for-windows/git-for-windows.gi
git-for-windows 2.15.1 github 官方版下载 压缩包 git-for-windows 2.15.1 github 官方版下载 压缩包
接下来,我们将使用**git bash**,这是一个模拟Linux命令行环境的工具,让你在Windows系统上也能方便地使用Git命令。安装Git后,它会自动包含Git Bash。打开Git Bash,你将在Windows环境下获得类似于Linux终端的体验...
本文将详细介绍Git for Windows 32位和64位版本,以及如何在Windows系统上安装和使用Git。 Git最初由Linux之父Linus Torvalds开发,其主要目标是为Linux内核开发提供一个高效且可靠的版本控制工具。随着时间的推移...
基于 Git 程序的操作使用 GitHub 教程分享是新手小白学习的必备教程,本教程将详细讲解 Git 安装使用、GitHub 登录、拉取代码等操作步骤。 一、Git 安装 Git 安装是使用 GitHub 的第一步,安装完成后需要设置 Git ...
Git是分布式版本控制系统,GITHUB是全球最大的开源代码托管平台,而Git Server则是用于搭建本地或私有Git仓库的服务端程序。这三者构成了开发者进行版本控制和协作开发的核心工具链。下面,我们将深入探讨这些知识点...
如何用git将本地项目push到GitHub上?如何用git将本地项目push到GitHub上?
Git和GitHub是现代软件开发中不可或缺的工具,用于版本控制和协作。Git是一款分布式版本控制系统,而GitHub则是一个在线平台,提供了Git仓库托管、代码审查、项目管理等功能。本手册将帮助初学者理解这两个工具的...
使用eclipse或git命令行将项目托管到github
3. 在Windows上安装Git:可以访问Git官网下载安装程序,按照向导设置即可。安装后,运行Git Bash启动命令行环境。 三、GitLab与GitHub的区别与使用 GitLab和GitHub都是基于Git的代码托管平台,提供云存储、协作...
git clone https://github.com/git-for-windows/git-for-windows.github.io.git (此仓库) 安装 (包含“ npm”程序包管理器) 安装Grunt: npm install -g grunt-cli 安装Node.js的依赖项: cd git-for-windows....
Git与Github教程详细介绍了Git的工作机制,Git命令行的基础学习,Git-Eclipse和Nginx的准备工作,Git与Github分支体系,Git与Github的远程和本地工作原理,Git与Github克隆实战和最后的课程精华总结部分,可以帮助...
git,git与IDEA,git与github,git与gitee相关操作小结
- **在Windows命令提示符中使用Git和可选的Unix工具**:除了Git命令外,还会安装一些Unix风格的工具,如`cp`、`mv`等。 - **文件换行符设置**:由于Git是基于Unix设计的,因此在处理文件换行符时有几种配置选项: ...
windows git github git下载 git安装包
torch 项目完整代码,公司无法使用git,所以放了个备份在csdn上 (git clone https://github.com/torch/distro.git ~/torch --recursive)
传智播客 两小时学会Git玩转Github视频配套文档
在“czbk公开课笔记git 两小时学会Git玩转Github.doc”中,你将了解如何初始化一个新的Git仓库,使用`git init`命令。接着,你将学习如何添加文件到暂存区(Stage),使用`git add`,并提交更改到本地仓库,使用`git...
### Git及GitHub使用手册 #### 一、版本管理工具与Git简介 - **版本管理工具的概念**:版本管理工具是一种帮助软件开发者管理源代码变化的系统。它通过追踪每次更改来确保项目的每个版本都能被记录下来,从而方便...