美文网首页
Git 简单总结

Git 简单总结

作者: 丹蕾_7933 | 来源:发表于2018-11-27 15:46 被阅读0次

Git的安装: Windows上操作。


1、安装安装包地址:http://msysgit.github.io/

一路next,直接安装上,完成安装之后,就可以使用命令行的 git 工具(已经自带了 ssh 客户端)了,另外还有一个图形界面的 Git 项目管理工具。

在开始菜单里找到"Git"->"Git Bash",会弹出 Git 命令窗口,你可以在该窗口进行 Git 操作。

2、安装完成之后一系列命令操作

一般公司申请账户,邮箱,相对用的注册账户邮箱方式:

$ git config --global user.name "gongxiaozhu"

$ git config --global user.email "gongxiaozhu@qq.com"

3、查看配置信息

git config --list

Git config user.name

git config user.email

Git 工作区、暂存区和版本库

我们先来理解下Git 工作区、暂存区和版本库概念

工作区:就是你在电脑里能看到的目录。

暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

下面这个图展示了工作区、版本库中的暂存区和版本库之间的关系:

图中左侧为工作区,右侧为版本库。在版本库中标记为 "index" 的区域是暂存区(stage, index),标记为 "master" 的是 master 分支所代表的目录树。

图中我们可以看出此时 "HEAD" 实际是指向 master 分支的一个"游标"。所以图示的命令中出现 HEAD 的地方可以用 master 来替换。

图中的 objects 标识的区域为 Git 的对象库,实际位于 ".git/objects" 目录下,里面包含了创建的各种对象及内容。

当对工作区修改(或新增)的文件执行 "git add" 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。

当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。

当执行 "git reset HEAD" 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。

当执行 "git rm --cached <file>" 命令时,会直接从暂存区删除文件,工作区则不做出改变。

当执行 "git checkout ." 或者 "git checkout -- <file>" 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动。

当执行 "git checkout HEAD ." 或者 "git checkout HEAD " 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。

Git 工作流程


一般工作流程如下:

克隆 Git 资源作为工作目录。

在克隆的资源上添加或修改文件。

如果其他人修改了,你可以更新资源。

在提交前查看修改。

提交修改。

在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。

Git 的常用命令:

git clone、git remote、git fetch、git pull、git push

下图展示了 Git 的工作流程:

Git 创建仓库


git init

Git 使用 git init 命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,所以 git init 是使用 Git 的第一个命令。

git init

该命令执行完后会在当前目录生成一个 .git 目录。使用我们指定目录作为Git仓库。

git init newrepo

初始化后,会在 newrepo 目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。

$ git add  .

$ git add README

$ git commit -m '初始化项目版本'

以上命令将目录下以 .c 结尾及 README 文件提交到仓库中。

git clone

我们使用 git clone 从现有 Git 仓库中拷贝项目(类似 svn checkout)。

克隆仓库的命令格式为:

$ git clone “地址”

执行该命令后,会在当前目录下创建一个名为grit的目录,其中包含一个 .git 的目录,用于保存下载下来的所有版本记录。

如果要自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:

$ git clone "地址"

Clone 完之后我们操作

 添加文件,添加文件包

$ git  touch  “文件名称”, git  makdir 新建文件

新建完之后编辑

$ vi  “文件名”   $ : wq  保存文件编辑

查看文件

$ ls  -a   查看所有文件   ll  以一种怕列方式展示  git status   提交状态 git  diff 查看不同文件

添加文件、删除文件

$  git   add ./   git   add  "文件名称"   git  rm 

提交到缓存到本地文件

$ git  commit -m "说明"   git pull   git push

Git 分支管理

git branch -a  查看远程分支。

git  checkout (branch)   切换分支

git  merge  合并分支

git  整体流程


一般配置

  git --version  //查看git的版本信息

  git config --global user.name  //获取当前登录的用户

  git config --global user.email  //获取当前登录用户的邮箱

登录git

/* 如果刚没有获取到用户配置,则只能拉取代码,不能修改  要是使用git,你要告诉git是谁在使用*/   git config --global user.name 'userName'    //设置git账户,userName为你的git账号,

git config --global user.email'email'

创建一个文件夹

  mkdir nodejs    //创建文件夹nodejs

  cd nodejs      //切换到nodejs目录下

初始化git仓库

  git init //在nodejs文件夹下初始化一个仓库,此时文件里会到一个.git的隐藏文件夹

创建忽略文件

  touch .gitignore    //不需要服务器端提交的内容可以写到忽略文件里

    /*

          .git

        .idea

     /*

查看目录

  ls -al

创建文件并写入内容

    //  如果文件不存在则会创建文件

    //  单个>箭头表示写入, >>表示追加

    echo "hello git"

    > index.html      //将'hello git' 写入到index.html中       

查看文件内容

  cat index.html

增加到暂存区中

  git add index.html

  git add -A      //全部添加到缓存区

增加到版本库(仓库)中

  git commit -m '备注时间、次数、版本号等信息'

查看版本

  git log --oneline

  git diff

  //比较的是暂存区和历史区的差异

  git diff --cached

  //比较的是历史区和工作区的差异(修改)

  git diff master

撤回内容

  //  如果修改了工作区的文件后发现改错了

  //  可以用暂存区或者版本库里的文件替换掉工作区的文件

  //  用暂存区中的内容或者版本库中的内容覆盖掉工作区

  git checkout index.html

取消增加到暂存区的内容(添加时)

git reset HEAD index.html

//显示目录的状体 有没有添加或者修改文件

git status

删除本地文件

  rm fileName

删除暂存区

// 保证当前工作区中没有index.html  // 使用--cached 表示只删除缓存区中的内容

git rm index.html --cached

回滚版本

  回滚最近的一个版本 git log

  git reset --hard HEAD/commit_id

回滚到未来

  git reflog

创建分支

  git branch dev

切换分支

  git checkout dev

创建分支并切换分支

  git checkout -b dev

删除分支

  git branch -d dev

在分支上提交新的版本

  git commit -a -m 'dev1'

合并分支

  git merge dev

分支的合并后显示log

  git log --oneline --graph --decorate

在分支开发的过程中遇到其他问题需要切换其他分支

  //  保留写好的内容在切换到主干

  //  保留内容

  git stash

再次切换分支后,需要应用一下保留的内容

  git stash apply

丢掉保存的内容

  git stash drop

使用并丢掉

  git stash pop

最佳分支

//  有的时候开发需要合并指定的内容,而不是合并所有的提交

//  所以我们需要挑选最好的,自己生产版本

合并分支把树杈掰到主干上

  git rebase

添加远程的仓库

  //  push -u

  //  -u参数 upstream

  git push origin master -u  //获取最新代码

连接远程仓库

  git remote add origin 仓库的地址

查看远程仓库

  git remote -v

删除远程仓库

  git remote rm origin

如果选择SSH协议,必须将Ubuntu的公钥添加到GitHub上。见下一步

 SSH Key

生成SSH Key:ssh-keygen –t rsa –C "你的邮箱@xx.com"

生成Key时弹出选项,回车选择默认即可。

Key保存位置:/root/.ssh

登陆GitHub,创建new SSH key,其内容为/root/.ssh/id_rsa.pub中文本

 已经有了本地库和远程库,二者实现同步

本地库的改动提交到远程库:git push origin master

更新本地库至远程库的最新改动:git pull

相关文章

  • 浅谈gitflow

    之前文章对git的日常操作做了简单的总结,本篇主要对gitflow进行说明和总结。 git日常的基本操作 Git ...

  • Git 简单总结

    如果需要用 git 来实现合作,具体操作大致分为如下(若没有仓库先新建一个): 1.找到想要存放的路径,如 cd ...

  • Git 简单总结

    Git的安装: Windows上操作。 1、安装安装包地址:http://msysgit.github.io/ 一...

  • 几张图让你彻底弄懂git工作流(二) ——git分支

    上篇文章已经说了Git简史以及Git基础,那么这篇文章简单总结下Git分支 Git分支 为了理解 Git 分支的实...

  • git用法简单总结

    git checkout -b 新建并切换分支 git chekcout -B 新建并覆盖同名分支 git c...

  • Git 简单总结(一)

    简介 什么是git? git的起源 集中式 与 分布式 图解 git 和 svn 的简单对比 git 的工作流程 ...

  • git使用简单总结

    MacOS git 使用总结 下载客户端(MAC OS 可以忽略)windows 系统下载Git客户端下载链接:h...

  • oschina代码管理

    总结下将文件托管到git.osch的简单步骤: 1 先到http://git.oschina.net 登录账号密...

  • Git 的简单使用

    一直在使用Git,仅限于简单的使用,但还是记不住几个简单。在这边总结一下,加深印象,也方便查找。 安装Git 平常...

  • git 总结终结篇

    关于git,之前总是遇到什么问题然后做了一个简单总结。今天决定来一个系统的总结,加深一下自己对git的理解。 1、...

网友评论

      本文标题:Git 简单总结

      本文链接:https://www.haomeiwen.com/subject/jmbgqqtx.html