`

(转) [GIT] Windows 安装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等内容。

==========

分享到:
评论

相关推荐

    git-for-windows.github.io, 用于 Windows的upcoming版本 2.x的网站.zip

    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-for-windows 2.15.1 github 官方版下载 压缩包

    利用git从github上拉取项目

    接下来,我们将使用**git bash**,这是一个模拟Linux命令行环境的工具,让你在Windows系统上也能方便地使用Git命令。安装Git后,它会自动包含Git Bash。打开Git Bash,你将在Windows环境下获得类似于Linux终端的体验...

    git for windows32 or windows64

    本文将详细介绍Git for Windows 32位和64位版本,以及如何在Windows系统上安装和使用Git。 Git最初由Linux之父Linus Torvalds开发,其主要目标是为Linux内核开发提供一个高效且可靠的版本控制工具。随着时间的推移...

    基于git程序的操作使用github教程分享

    基于 Git 程序的操作使用 GitHub 教程分享是新手小白学习的必备教程,本教程将详细讲解 Git 安装使用、GitHub 登录、拉取代码等操作步骤。 一、Git 安装 Git 安装是使用 GitHub 的第一步,安装完成后需要设置 Git ...

    完全学会GIT+GITHUB+GIT+SERVER的24堂课

    Git是分布式版本控制系统,GITHUB是全球最大的开源代码托管平台,而Git Server则是用于搭建本地或私有Git仓库的服务端程序。这三者构成了开发者进行版本控制和协作开发的核心工具链。下面,我们将深入探讨这些知识点...

    如何用git将本地项目push到GitHub上?

    如何用git将本地项目push到GitHub上?如何用git将本地项目push到GitHub上?

    Git&GitHub_git和github使用手册_git手册_

    Git和GitHub是现代软件开发中不可或缺的工具,用于版本控制和协作。Git是一款分布式版本控制系统,而GitHub则是一个在线平台,提供了Git仓库托管、代码审查、项目管理等功能。本手册将帮助初学者理解这两个工具的...

    使用eclipse或git命令行将项目托管到github

    使用eclipse或git命令行将项目托管到github

    Git使用详解结合GitLab和GitHub

    3. 在Windows上安装Git:可以访问Git官网下载安装程序,按照向导设置即可。安装后,运行Git Bash启动命令行环境。 三、GitLab与GitHub的区别与使用 GitLab和GitHub都是基于Git的代码托管平台,提供云存储、协作...

    git-for-windows.github.io:Git for Windows主页

    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&Github极速入门与攻坚实战结合课程 一次搞定Git.txt

    Git与Github教程详细介绍了Git的工作机制,Git命令行的基础学习,Git-Eclipse和Nginx的准备工作,Git与Github分支体系,Git与Github的远程和本地工作原理,Git与Github克隆实战和最后的课程精华总结部分,可以帮助...

    git,git与IDEA,git与github,git与gitee相关操作小结

    git,git与IDEA,git与github,git与gitee相关操作小结

    Git与GitHub使用

    - **在Windows命令提示符中使用Git和可选的Unix工具**:除了Git命令外,还会安装一些Unix风格的工具,如`cp`、`mv`等。 - **文件换行符设置**:由于Git是基于Unix设计的,因此在处理文件换行符时有几种配置选项: ...

    windows下的git安装包

    windows git github git下载 git安装包

    torch(git clone https://github.com/torch/distro.git ~/torch --recursive)

    torch 项目完整代码,公司无法使用git,所以放了个备份在csdn上 (git clone https://github.com/torch/distro.git ~/torch --recursive)

    两小时学会Git玩转Github

    传智播客 两小时学会Git玩转Github视频配套文档

    czbk公开课笔记git 两小时学会Git玩转Github.zip

    在“czbk公开课笔记git 两小时学会Git玩转Github.doc”中,你将了解如何初始化一个新的Git仓库,使用`git init`命令。接着,你将学习如何添加文件到暂存区(Stage),使用`git add`,并提交更改到本地仓库,使用`git...

    git及gitHub使用手册

    ### Git及GitHub使用手册 #### 一、版本管理工具与Git简介 - **版本管理工具的概念**:版本管理工具是一种帮助软件开发者管理源代码变化的系统。它通过追踪每次更改来确保项目的每个版本都能被记录下来,从而方便...

Global site tag (gtag.js) - Google Analytics