Windows下git安装使用教程

本篇文章参考廖雪峰的git教程,并进行精简,帮助你们更快地使用git。git

git安装

  1. 打开浏览器输入Git官网网站回车便可打开Git官网
  2. 点击里面的“Downloads for Windows”即调整到下载页面等待下载便可,如今最新版本为2.10.1
  3. 我下载的安装包名为Git-2.10.1-64-bit.exe。
    双击既打开安装设置界面。而后点击“Next”;
  4. 配置安装组件,默认便可,点击“Next”;默认已经都帮咱们否选上了。包括建立桌面快捷方式、Git Bash、Git GUi、已经目录和后缀关联等;
  5. 在“Adjusting your PATH environment”选项中,默认便可。点击“Next”;
    (这个步骤最好选择第二项“Use Git from the Windows Command Prompt”, 这样在Windows的命令行cmd中也能够运行git命令了。这样会对之后的一些操做带来方便);
  6. 配置行结束标记,保持默认“Checkout Windows-style, commit Unix-style line endings”;
  7. 在终端模拟器选择页面,默认便可;
  8. 配置Git额外选择默认便可;
  9. 安装完成,默认点”Finish”便可。
  10. 安装完成后,还须要最后一步设置,在命令行输入:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

git使用

初始化一个Git仓库,使用git init命令。github

建立一个版本库很是简单,首先,选择一个合适的地方,建立一个空目录:
$ mkdir learngit
$ cd learngit
$ pwd
C:/Users/lee/learngit
pwd命令用于显示当前目录。在个人电脑上,这个仓库位于C:/Users/lee/learngit
第二步,经过git init命令把这个目录变成Git能够管理的仓库:
$ git init
瞬间Git就把仓库建好了,并且告诉你是一个空的仓库(empty Git repository),细心的读者能够发现当前目录下多了一个.git的目录(隐藏文件):
这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,否则改乱了,就把Git仓库给破坏了。

添加文件到Git仓库,分两步:web

第一步,使用命令git add <file>,注意,可反复屡次使用,添加多个文件;eg: git add readme.txt
第二步,使用命令git commit,完成。eg:git commit -m "任意起名"

git status
此命令可让咱们时刻掌握仓库当前的状态,上面的命令告诉咱们,readme.txt被修改过了,但尚未准备提交的修改。ubuntu

git diff
虽然Git告诉咱们readme.txt被修改了,但若是能看看具体修改了什么内容,天然是很好的。好比你休假两周从国外回来,第一天上班时,已经记不清上次怎么修改的readme.txt,因此,须要用这个命令git diff看看:
$ git diff readme.txt
git diff顾名思义就是查看difference,显示的格式正是Unix通用的diff格式,能够从上面的命令输出看到,咱们在第一行添加了一个“distributed”单词。windows

知道了对readme.txt做了什么修改后,再把它提交到仓库就放心多了,提交修改和提交新文件是同样的两步,第一步是git add:
$ git add readme.txt
一样没有任何输出。在执行第二步git commit以前,咱们再运行git status看看当前仓库的状态:

git status告诉咱们,将要被提交的修改包括readme.txt,下一步,就能够放心地提交了:
$ git commit -m "任意起名"

git reset - -hard commit_id 时光机穿梭
HEAD指向的版本就是当前版本,所以,Git容许咱们在版本的历史之间穿梭,使用命令git reset - -hard commit_id。
在Git中,用HEAD表示当前版本,,上一个版本就是HEAD^,上上一个版本就是HEAD^^,固然往上100个版本写100个^比较容易数不过来,因此写成HEAD~100浏览器

穿梭前,用git log能够查看提交历史,以便肯定要回退到哪一个版本。
要重返将来,用git reflog查看命令历史,以便肯定要回到将来的哪一个版本。
提交后,用git diff HEAD -- readme.txt命令能够查看工做区和版本库里面最新版本的区别:

出错修改ruby

场景1:当你改乱了工做区某个文件的内容,想直接丢弃工做区的修改时,用命令git checkout - - file。
场景2:当你不但改乱了工做区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步:
第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操做。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

删除bash

在Git中,删除也是一个修改操做,咱们实战一下,先添加一个新文件test.txt到Git而且提交:
通常状况下,你一般直接在文件管理器中把没用的文件删了,或者用rm命令删了:$ rm test.txt
这个时候,Git知道你删除了文件,所以,工做区和版本库就不一致了,git status命令会马上告诉你哪些文件被删除了:
如今你有两个选择:
一是确实要从版本库中删除该文件,那就用命令git rm删掉,而且git commit:
$ git rm test.txt
$ git commit -m "remove test.txt"
另外一种状况是删错了,由于版本库里还有呢,因此能够很轻松地把误删的文件恢复到最新版本:
$ git checkout -- test.txt

远程仓库服务器

在继续阅读后续内容前,请自行注册GitHub帐号。因为你的本地Git仓库和GitHub仓库之间的传输是经过SSH加密的,因此,须要一点设置:
第1步:建立SSH Key。在用户主目录下,看看有没有.ssh目录,若是有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件;
若是已经有了,可直接跳到下一步。若是没有,打开Shell(Windows下打开Git Bash),建立SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"
你须要把邮件地址换成你本身的邮件地址,而后一路回车,使用默认值便可,因为这个Key也不是用于军事目的,因此也无需设置密码。
若是一切顺利的话,能够在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件;
这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,能够放心地告诉任何人。
第2步:登录GitHub,打开“Account settings”,“SSH Keys”页面:
而后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
点“Add Key”,你就应该看到已经添加的Key:

添加远程仓库ssh

如今的情景是,你已经在本地建立了一个Git仓库后,又想在GitHub建立一个Git仓库,而且让这两个仓库进行远程同步;
这样,GitHub上的仓库既能够做为备份,又可让其余人经过该仓库来协做,真是一举多得。
首先,登录GitHub,而后,在右上角找到“Create a new repo”按钮,建立一个新的仓库:
在Repository name填入learngit,其余保持默认设置,点击“Create repository”按钮,就成功地建立了一个新的Git仓库:
目前,在GitHub上的这个learngit仓库仍是空的,GitHub告诉咱们,能够从这个仓库克隆出新的仓库,也能够把一个已有的本地仓库与之关联;
而后,把本地仓库的内容推送到GitHub仓库。
如今,咱们根据GitHub的提示,在本地的learngit仓库下运行命令:
$ git remote add origin https://github.com/starlee261/learngit.git
请千万注意,把上面的starlee261替换成你本身的GitHub帐户名,不然,你在本地关联的就是个人远程库;
关联没有问题,可是你之后推送是推不上去的,由于你的SSH Key公钥不在个人帐户列表中。

添加后,远程库的名字就是origin,这是Git默认的叫法,也能够改为别的,可是origin这个名字一看就知道是远程库。

下一步,就能够把本地库的全部内容推送到远程库上:
$ git push -u origin master
把本地库的内容推送到远程,用git push命令,其实是把当前分支master推送到远程。
因为远程库是空的,咱们第一次推送master分支时,加上了-u参数;
Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来
在之后的推送或者拉取时就能够简化命令。
推送成功后,能够马上在GitHub页面中看到远程库的内容已经和本地如出一辙:

从如今起,只要本地做了提交,就能够经过命令:
$ git push origin master
把本地master分支的最新修改推送至GitHub,如今,你就拥有了真正的分布式版本库!

当你第一次使用Git的clone或者push命令链接GitHub时,会获得一个警告:

SSH警告
The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?
这是由于Git使用SSH链接,而SSH链接在第一次验证GitHub服务器的Key时,须要你确认GitHub的Key的信息是否来自GitHub的服务器,输入yes回车便可。
Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:
Warning: Permanently added 'github.com' (RSA) to the list of known hosts.
这个警告只会出现一次,后面的操做就不会有任何警告了。
若是你实在担忧有人冒充GitHub服务器,输入yes前能够对照GitHub的RSA Key的信息是否与SSH链接给出的一致。

远程仓库同步至本地

首先在远程创建仓库,步骤以下图所示
这里写图片描述
这里写图片描述

点击creat repository,远程仓库创建完毕

接下来。使用git clone命令将远程仓库同步到本地
1. 在指定地目录空白处鼠标右键选择 git bash here ,打开git命令窗口
2. 在本身的github上选择对应仓库,选择clone or download复制本身的地址
3. 使用git clone +地址下载远程仓库到本地
4. 至此,下载完毕

git忽略上传的文件

在项目中新建.gitignore文件
而后就写规则来操做要忽略的文件了。.gitignore文件过滤有两种模式,开放模式和保守模式

1.开放模式负责设置过滤哪些文件和文件夹
eg:

1)过滤文件夹设置:  
/文件夹名/       表示过滤这个文件夹

2)过滤文件设置
指定过滤某种类型的文件:
*.zip
*.rar
*.jpg
*.m
3)指定过滤某个文件:
/文件夹名/文件名

2.保守模式负责设置哪些文件不被过滤,也就是哪些文件要被跟踪。

1)跟踪某个文件夹
!/plutommi/mmi

2)跟踪某类文件
!*.c
!*.h

3)跟踪某个指定文件
!/plutommi/mmi/mmi_features.h

3.配置.gitignore 的简易原则

采用共享模式与保守模式结合配置的办法。eg:一个文件夹下有不少文件夹和文件,而我只想跟踪其中的一个文件,这样设置就能够知足这种状况。
先用共享模式把整个目录 都设置为不跟踪,而后再用保守模式把这个文件夹中想要跟踪的文件设置为被跟踪,配置很简单,就能够跟踪想要跟踪的文件。

ubuntu安装使用git
1. 安装
使用$ sudo apt-get install git-core命令进行安装便可。
2. 安装完成后,还须要最后一步设置,在命令行输入:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

3. 安装公钥SSH KEY

$ ssh-keygen -t rsa -C "youremail@example.com"

一路回车,使用默认值便可
若是一切顺利的话,能够在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件;这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,能够放心地告诉任何人。

4. 登录GitHub,打开“Account settings”,“SSH Keys”页面:
而后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
点“Add Key”,你就应该看到已经添加的Key:

5.接下来不管远程下载本地仍是本地上传远程都跟windows下一致啦。