zoukankan      html  css  js  c++  java
  • Git的简单使用

    1.什么是Git?

    一种分布式的软件配置管理工具。

    2.目录结构

    假如现在有一个工程被git管理,它分为三个部分:本地工作区,本地版本库(CMDB)的远程版本库。其中本地版本库有一个暂存区。

    本地工作区就是你的工程所对应的本地文件夹

    本地版本库是工作区(本地文件夹)下的.git隐藏文件夹。

    远程版本库是你的工程在网络上的备份。

    3.文件

    文件时Git的基本配置项SCI(软件中发生变化的基本单元)

    当一个文件被创建或者修改时,它与本地版本库中的相应文件不一样了,此时它处于“已修改”状态。

    已修改的文件,可以通过git add命令,添加到暂存区,此时它处于“已暂存”状态。

    已暂存的文件,可以通过git commit,把暂存区的文件汇总成一个commit,然后提交到本地版本库,此时它处于“已提交“”状态。

    也可以通过git commit -a命令将已修改的文件提交commit。

    4.操作

    git status可以查看当前工作目录的状态。

    显示出来的文件总共有三种状态分别是

         1.已添加至暂存区,未提交的(add后未commit的文件)

         2.已修改,未暂存的

         3.为追踪到的文件

    git diff比较暂存区和工作区的文件的差异

    git diff HEAD可以查看某个commit中的文件和当前工作区中的文件的差别

    想要把本地的提交记录提交到远程,可以执行git push命令。

    如果要把远程的提交记录拉回到本地,可以执行git fetch命令。

    如果要把远程的工程下载到本地,可以执行git clone命令

    如果要把远程工程拉到本地,并且立即和自己的本地版本合并,可以用git pull命令。

    要撤销本地工作区到暂存区的更改,可以用git reset<file>

    要撤销commit,可以用git reset<commit>

    5.分支

    使用分支,相当于从现有的版本线上又分出来一条,可以加一些和以前不一样的版本分别管理,还可以合并,非常方便。

    一次只能在一个分支上工作,要跳转分支,需要git checkout <branch>

    要创建新分支,可以用git checkout -b <branch>

    如果两个分支有共同的祖先,在某个时刻可以把这个有共同祖先的分支和自己合并,命令是git merge <branch>

    6.总结(github官方的cheatsheet)

    ________________________________________________________

    安装Git

    GitHub提供了包含图形界面的桌面客户端,通过客户端可以完成大部分常用的仓库操作,同时可以自动更新Git的命令行版本,以适应新的场景。

    GitHub Desktop

    https://desktop.github.com/

    GitHub的Linux和POSIX版本可以在官方的Git SCM网站上获取。

    Git 全平台版

    http://git-scm.com

    配置工具

    对所有本地仓库的用户信息进行配置

    $ git config --global user.name "[name]"

    对你的commit操作设置关联的用户名

    $ git config --global user.email "[email address]"

    对你的commit操作设置关联的邮箱地址

    创建仓库

    创建一个新的仓库或者从一个现有的链接获取仓库

    $ git init [project-name]

    创建一个本地的仓库,并设置名字

    $ git clone [url]

    下载一个项目以及它所有的版本历史

    更改

    检查已有的编辑并执行commit操作

    $ git status

    列出所有新建或者更改的文件,这些文件需要被commit

    $ git diff

    展示那些没有暂存文件的差异

    $ git add [file]

    将文件进行快照处理用于版本控制

    $ git diff --staged

    展示暂存文件与最新版本之间的不同

    $ git reset [file]

    将文件移除暂存区,但是保留其内容

    $ git commit -m"[descriptive message]"

    将文件快照永久地记录在版本历史中

    批量更改

    命名一系列commit以及合并已完成的工作

    $ git branch

    列出当前仓库中所有的本地分支

    $ git branch [branch-name]

    建立一个新分支

    $ git checkout [branch-name]

    切换到一个特定的分支上并更新工作目录

    $ git merge [branch-name]

    合并特定分支的历史到当前分支

    $ git branch -d [branch-name]

    删除特定的分支

     

    重构文件

    重定位并移除版本文件

    $ git rm [file]

    从工作目录中删除文件并暂存此删除

    $ git rm --cached [file]

    从版本控制中移除文件,并在本地保存文件

    $ git mv [file-original] [file-renamed]

    改变文件名并准备commit

    停止追踪

    不包含临时文件和路径

    *.log
    build/
    temp-*
    

    文本文件.gitignore可以防止一些特定的文件进入到版本控制中

    $ git ls-files --others --ignored --exclude-standard

    列出所有项目中忽略的文件

    保存临时更改

    暂存一些未完成的更改

    $ git stash

    临时存储所有修改的已跟踪文件

    $ git stash pop

    重新存储所有最近被stash的文件

    $ git stash list

    列出所有被stash的更改

    $ git stash drop

    放弃所有最近stash的更改

    查阅历史

    浏览并检查项目文件的发展

    $ git log

    列出当前分支的版本历史

    $ git log --follow [file]

    列出文件的版本历史,包括重命名

    $ git diff [first-branch]...[second-branch]

    展示两个不同分支之间的差异

    $ git show [commit]

    输出元数据以及特定commit的内容变化

    撤销commit

    擦除错误并更改历史

    $ git reset [commit]

    撤销所有[commit]后的的commit,在本地保存更改

    $ git reset --hard [commit]

    放弃所有更改并回到某个特定的commit

    同步更改

    注册一个远程的链接,交换仓库的版本历史

    $ git fetch [remote]

    下载远程仓库的所有历史

    $ git merge [remote]/[branch]

    合并远程分支到当前本地分支

    $ git push [remote] [branch]

    上传所有本地分支commit到GitHub上

    $ git pull

    下载书签历史并合并更改

  • 相关阅读:
    【css】垂直居中的几种写法
    【gulp】gulp-file-include 合并 html 文件
    【gulp】gulp + browsersync 构建前端项目自动化工作流
    【nodejs】exports 和 module.exports 的区别
    【nodejs】初识 NodeJS(四)
    【nodejs】初识 NodeJS(三)
    【nodejs】初识 NodeJS(二)
    【nodejs】初识 NodeJS(一)
    【规范】前端编码规范——注释规范
    【规范】前端编码规范——jquery 规范
  • 原文地址:https://www.cnblogs.com/hyfer/p/11079430.html
Copyright © 2011-2022 走看看