Windows下GIT的使用方法

文章引用自:Git使用教程    http://www.javashuo.com/article/p-xckfhbic-cq.html

本文章只限用于Windows,敬请参考html

注意:操做命令纯属手敲,可能会有错误,错误后参考文章连接!git

Git下载地址https://gitforwindows.org/  # Windows版本github

安装方式:一顿操做猛如虎,一看全是下一步。烦请移步百度。windows

安装完成后打开 Git Bash (打不开百度)app

1、初步打开Git Bash:

由于Git是分布式版本控制系统,因此须要填写用户名和邮箱做为一个标识。ssh

填写用户名: git config --global user.name "这里填写您的用户名"分布式

填写邮箱:git config --global user.email "这里填写您的邮箱"fetch

2、建立版本库(仓库):

       什么是版本库?版本库又名仓库,英文名repository,你能够简单的理解一个目录,这个目录里面的全部文件均可以被Git管理起来,每一个文件的修改,删除,Git都能跟踪,以便任什么时候刻均可以追踪历史,或者在未来某个时刻还能够将文件”还原”。加密

一、进入目录

首先进入您的仓库目录:cd E:\code\testgit命令行

输入pwd命令能够查看当前的目录

二、把目录变成Git能够管理的仓库

改变仓库属性: git init Initialized empty Git repository in E:\code\testgit

这时候你当前testgit目录下会多了一个.git的目录,这个目录是Git来跟踪管理版本的,没事千万不要手动乱改这个目录里面的文件,不然,会把git仓库给破坏了。

三、仓库操做命令:

    把文件添加到暂存区: git add 您的文件(包括文件后辍名)

    把文件提交到仓库: git commit -m “您的文件(这个地方是提交文件的注释)”

    查看未提交文件: git status

    查看文件修改的具体内容: git diff 您的文件(包括文件后辍名)

一次性把全部暂存库的文件提交到仓库: git commit

3、版本回退

一、查看文件操做日志

查看文件详细的操做日志: git log

查看文件简明的操做日志: git log --pretty=oneline

二、文件版本回退操做

当前版本回退到上一个版本: git reset --hard HEAD^

当前版本回退到上上一个版本: git reset --hard HEAD^^

当前版本回退到指定n版本: git reset --hard HEAD~n

回退到上一个版本后后悔了,想返回原来最后一次的版本,能够经过版本号回退:

获取版本号: git reflog

       版本回退: git reset --hard 版本号(最前面的字符)

4、工做区与暂存区的区别

   工做区:就是你在电脑上看到的目录,好比目录下testgit里的文件(.git隐藏目录版本库除外)。或者之后须要再新建的目录文件等等都属于工做区范畴。

版本库(Repository):工做区有一个隐藏目录.git,这个不属于工做区,这是版本库。其中版本库里面存了不少东西,其中最重要的就是stage(暂存区),还有Git为咱们自动建立了第一个分支master,以及指向master的一个指针HEAD。

baGit提交文件到版本库有两步:

  第一步:是使用 git add 把文件添加进去,实际上就是把文件添加到暂存区。

  第二步:使用git commit提交更改,实际上就是把暂存区的全部内容提交到当前分支上。

5、Git撤销修改和删除文件操做

一、撤销修改

工做区作的修改所有撤销: git checkout -- 您的文件(包括文件后辍名)

注意:命令git checkout -- readme.txt 中的 -- 很重要,若是没有 -- 的话,那么命令变成建立分支了。

命令 git checkout -- readme.txt 意思就是,把readme.txt文件在工做区作的修改所有撤销, 这里有2种状况,以下:

readme.txt自动修改后,尚未放到暂存区,使用 撤销修改就回到和版本库如出一辙的状态。

另一种是readme.txt已经放入暂存区了,接着又做了修改,撤销修改就回到添加暂存区后的状态。

二、删除文件

直接在文件库删除文件或者使用以下命令

删除命令: rm 您的文件(包括文件后辍名)

在没上传到仓库以前可使用上面的撤销修改命令再把删除的文件恢复回来

6、 远程仓库

 在了解以前,先注册github帐号,因为你的本地Git仓库和github仓库之间的传输是经过SSH加密的,因此须要一点设置:

一、 建立SSH key

在用户主目录下,看看有没有 .ssh目录,若是有,再看看这个目录下有没有 id_rsaid_rsa.pub 这两个文件id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,能够放心地告诉任何人。),若是有的话,直接跳过此以下命令,若是没有的话,打开命令行,输入以下命令:

ssh-keygen  -t rsa C “您的邮箱”

2、添加key

    登陆github,打开右上角的齿轮按钮“settings”中左侧列表的SSH Keys,而后点击“Add SSH Key”,填上任意title(标题),在Key文本框里黏贴“id_rsa.pub”文件的内容。

点击绿色按钮“Add Key”就能够看到添加完成的key。

三、如何添加远程库

如今的情景是:咱们已经在本地建立了一个Git仓库后,又想在github建立一个Git仓库,而且但愿这两个仓库进行远程同步,这样github的仓库能够做为备份,又能够其余人经过该仓库来协做。

首先登陆github,而后右上角的“加”的符号“create a new repo”建立一个新的仓库。

Repository name填入“您的仓库名称”,其余保持默认设置,点击绿色按钮“Create repository”按钮,就成功地建立了一个新的Git仓库:

目前,在GitHub上的这个testgit仓库仍是空的,GitHub告诉咱们,能够从这个仓库克隆出新的仓库,也能够把一个已有的本地仓库与之关联,而后,把本地仓库的内容推送到GitHub仓库。

如今,咱们根据GitHub的提示,在本地的testgit仓库下运行命令: 

git remote add origin https://github.com/tugenhua0707/testgit.git(后面这个网址要用本身的)          # 克隆远程仓库内容

推送本地到远程:git push -u origin master

因为远程库是空的,咱们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在之后的推送或者拉取时就能够简化命令。推送成功后,能够马上在github页面中看到远程库的内容已经和本地如出一辙了。

从如今起,只要本地作了提交,就能够经过以下命令:

git push origin master

把本地master分支的最新修改推送到github上了,如今就拥有了真正的分布式版本库了。

四、如何从远程库克隆?

上面咱们了解了先有本地库,后有远程库时候,如何关联远程库。

  如今咱们想,假如远程库有新的内容了,我想克隆到本地来 如何克隆呢?

  首先,登陆github,建立一个新的仓库,名字叫testgit2。

远程库准备好了,下一步就是使用命令git clone克隆一个本地仓库了。

git clone 你的github地址

接着在本地目录下就会生成testgit2 目录了

7、建立与合并分支

在  版本回填退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来讲不是指向提交,而是指向master,master才是指向提交的,因此,HEAD指向的就是当前分支。

首先,咱们来建立dev分支,而后切换到dev分支上。以下操做:

 get checkout -b dev      # 建立并切换分支

git branch                # 查看当前分支

git checkout 命令加上 –b参数表示建立并切换,至关于以下2条命令

get checkout master(主分支)   # 切换回主分支

git merge dev                     # 在主分支上合并dev分支

      git branch -d dev               # 删除dev分支

      git log                           # 查看分支状况

总结建立与合并分支命令以下:

   查看分支:git branch

   建立分支:git branch name

   切换分支:git checkout name

建立+切换分支:git checkout –b name

合并某分支到当前分支:git merge name

删除分支:git branch –d name

主次分支内容冲突解决办法:

Git用<<<<<<<,=======,>>>>>>>标记出不一样分支的内容,其中<<<HEAD是指主分支修改的内容,>>>>>fenzhi1 是指fenzhi1上修改的内容,修改分支内容和主分支内容一致便可解决

分支管理策略。

一般合并分支时,git通常使用”Fast forward”模式,在这种模式下,删除分支后,会丢掉分支信息,如今咱们来使用带参数 –no-ff来禁用”Fast forward”模式。

命令:

       在主目录下合并分支目录:

git merge no-ff  -m 本次命令作的事情注释 dev

分支策略:首先master主分支应该是很是稳定的,也就是用来发布新版本,通常状况下不容许在上面干活,干活通常状况下在新建的dev分支上干活,干完后,好比上要发布,或者说dev分支代码稳定后能够合并到主分支master上来。

8、BUG分支解决办法

  在开发中,会常常碰到bug问题,那么有了bug就须要修复,在Git中,分支是很强大的,每一个bug均可以经过一个临时分支来修复,修复完成后,合并分支,而后将临时的分支删除掉。

 git stash         #把当前工做分区先隐藏

在主目录新建进入临时分支,查看并更改须要修改的代码后,切换回主分支合并临时分支,合并确认完成后,在进入以前的工做分支。

进入工做区后恢复以前隐藏的工做分区内容。

git stash list     # 查看以前的工做分区隐藏在哪一个地方

Git把stash内容存在某个地方了,可是须要恢复一下,可使用以下2个方法:

git stash apply恢复,恢复后,stash内容并不删除,你须要使用命令git stash drop来删除。

另外一种方式是使用git stash pop,恢复的同时把stash内容也删除了。

9、多人协做

当你从远程库克隆时候,实际上Git自动把本地的master分支和远程的master分支对应起来了,而且远程库的默认名称是origin。

git remote     # 要查看远程库的信息

git remote v  # 要查看远程库的详细信息

其中查看远程库的详细信息后会有两条推送信息,结尾括号内的fetch为抓取,就是下载;push为推送,就是把本地推送到远程

一、 推送分支

git push origin master       # 本地主分支推送到远程仓库

那么通常状况下,那些分支要推送呢?

master分支是主分支,所以要时刻与远程同步。

一些修复bug分支不须要推送到远程去,能够先合并到主分支上,而后把主分支master推送到远程去。

二、 抓取分支

这个看原文章