一、Git三区概念

工作区 (work dict)

暂存区(stage)(add 是添加到当前的暂存区)

提交区(就是当前工作的分支master分支或者branches分支)

git 所有操作都是基于这三个区域进行的

完成一个文件的修改和添加流程是:工作区--->暂存区--->提交区

特别强调一个概念:git的所有行为都是基于修改的而不是基于文件的。

二、常见Git本地仓库操作

创建一个git仓库 git init (用ls -ah 查看当前目录下面会有.git文件)

添加git文件 git add git.txt (添到暂存区)

提交git文件 git commit git.txt (添加到提交区)

查看当前git仓库状态 git status (查看工作区的工作状态)

查看文件和最新版本的区别有两个

git diff git.txt (是工作区和暂存区的比较)

git diff HEAD --git.txt

(注:这里概念有点绕,HEAD指向是最新提交的信息,而暂存区一般都是最新版本,所以这里可以认为两个都是和最新

版本的比较,其中HEAD可以替换为对应的版本号,就是可以理解为和对应版本进行比较)

查看文件的提交修改 git diff --cached git.txt (是暂存区和分支的比较)

查看文件的提交版本记录git log 或者是git log --pretty=oneline

回滚git修改版本上一版本 git reset --? HEAD^ (上上一版本是HEAD^^)

回滚到修改版本的前指定N个版本 git reset --? HEAD~N

回滚到指定版本(版本id以versionid) git reset --? versionid

(注:这里打一个? 指的是对应不同的参数对应不同概念,hard 是三个区全部回退,mixed 默认参数除了工作区其他两个

区域都回退,soft只把分支区回退)

查看具体操作命令就像是liunx系统的history基本功能 git reflog

撤回工作区的具体修改到最近一次的git commit 或者git add 的状态 git checkout -- git.txt

删除一个工作区文件 rm git.txt

删除一个工作区和暂存区文件 git rm git.txt(=先rm 后git add)

恢复删除文件 git reset HEAD 后 git checkout -- git.txt

三、本地仓库和远程仓库处理基本操作命令

关联本地仓库和远程仓库 git remote add origin XXXXX (origin是远程仓库的默认叫法)

推送本地仓库到远程仓库 git push -u origin master(-u 操作在第一次进行的时候添加之后可以不再带此参数)

从远程仓库克隆到本地仓库 git clone XXX(具体路径)

查看远程仓库信息 git remote (-v 可以更详细看对应信息)

四、分支操作

单纯创建分支 git branch git_branch

切换到某个分支 git checkout git_branch

创建并切换到新分支 git checkout -b git_braches (-b 表示创建并切换当前分支,如果完成单纯的切换分支可以去掉-b)

(= 先git  branch xxx 后 git checkout xxx)

查看当前的分支 git branch (列出所以分支,并且会在当前分支上画一个*)

合并指定分支到当前分支 git merge git_branch

删除指定分支 git branch -d git_branch

查看分支合并情况 git log --graph --pretty=oneline --addrev-commit

分支合并禁用fast-forward模式 git merge --no-ff -m "xxxx" git_branch(加--no-ff的目地是为了能用git log看出分支的合并历史)

拉取远程最新提交 git pull

在本地创建和远程对应的分支 git checkout -b branch-name origin/branch-name

建立本地分支和远程分支的关联git branch --set-upstream branch-name origin/branch-name

五、一些特殊操作

git stash 保存当前分支工作区内容

git stash list 查看stash区域保存的某个分支的工作内容

git stash  apply 恢复当前分支的工作内容

git stash drop 删除stash区域保存的某个分支的工作内容

git stash pop 恢复当前分支的工作内容并删除stash区域保存的分支的工作内容

以上stash 操作如果对对应的列表中某个版本操作可在以上后面加对应版本 如 git stash apply stash@{0}

六、为当前提交打分支

创建标签git tag vX.X version-id

查看标签信息 git show vX.X

创建带有说明的标签信息 git tag -a vX.X -m "说明信息" version-id

七、个性化设置

git 适当显示不同的颜色 git config --global color.ui true

八、配置个性话git服务器

暂不讲了,可以参考网上的攻略

常见Git操作及关键知识点的更多相关文章

  1. 使用github作为远程仓库的常见git操作

    [git上传本地代码到github新建仓库]一.建立git本地仓库 1.在本地目标文件夹(Code)中执行命令: git init //初始化本地仓库二.将上传到github的项目文件添加到本地仓库中 ...

  2. Java异常的10个关键知识点

    前言 总结了Java异常十个关键知识点,面试或者工作中都有用哦,加油. 一. 异常是什么 异常是指阻止当前方法或作用域继续执行的问题.比如你读取的文件不存在,数组越界,进行除法时,除数为0等都会导致异 ...

  3. Java程序员必备:异常的十个关键知识点

    前言 总结了Java异常十个关键知识点,面试或者工作中都有用哦,加油. 一. 异常是什么 异常是指阻止当前方法或作用域继续执行的问题.比如你读取的文件不存在,数组越界,进行除法时,除数为0等都会导致异 ...

  4. svn 迁移至git操作手册

    svn 迁移至git操作手册 项目交付.版本管理工具变更等情况下,迁移svn旧历史记录有很大必要,方便后续追踪文件的提交历史,文件修改记录比对等.git自带了从svn迁移至git的工具命令,可很好的对 ...

  5. Git操作自动触发企业微信机器人webhook

    [本文出自天外归云的博客园] 背景 在git做一些merge或push的操作,我们希望可以自动在企业微信群发送自定义的通知. 服务代码 这里选用php作为网络服务的开发语言,关键的代码如下(githo ...

  6. 如何撤销Git操作?

    本文不再更新,可能存在内容过时的情况,实时更新请移步我的新博客:如何撤销Git操作?: Git 版本管理时,往往需要撤销某些操作. 本文介绍几种最主要的情况,给出详细的解释.更多的命令可以参考< ...

  7. opencv笔记4:模板运算和常见滤波操作

    time:2015年10月04日 星期日 00时00分27秒 # opencv笔记4:模板运算和常见滤波操作 这一篇主要是学习模板运算,了解各种模板运算的运算过程和分类,理论方面主要参考<图像工 ...

  8. Intellij 中的git操作 转!

    http://blog.csdn.net/lovesummerforever/article/details/50032937 Git原理以后会分章节介绍,本次主要说一下intellij怎样操作git ...

  9. 使用Git操作GitHub代码入门教程

    GitHub除了网页操作外,还可以借助本地客户端git(或github for windows)来增删修改远程代码.使用Git操作来连接GitHub可以通过Https或SSH方式,使用SSH方式可以免 ...

随机推荐

  1. z-albert之开启博文之路

    其实注册博客园已经蛮久的了,一直都只是停留在看,却没有自己动手一篇属于自己的技术博文.之所以以前一直没写,以前没有工作,一直都是小白.然而今天为什么感写了呢,并不是自己比以前懂得多多少,而是希望将自己 ...

  2. 使用js合并table中的单元格

    用primefaces做的报表,领导要求合并相同内容的单元格,但是primefaces没有找到可以合并单元格的组件,想来想去,只有页面加载后用js合并了. http://blog.csdn.net/d ...

  3. awk字符串处理

    awk 字符串处理函数 awk提供了许多强大的字符串函数,见下表:awk内置字符串函数gsub(r,s)    在整个$0中用s替代rgsub(r,s,t)    在整个t中用s替代rindex(s, ...

  4. TensorFlow备忘录——conv2d函数

    卷积函数 TensorFlow学习备忘录 tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, data_forma ...

  5. Office.资料

    1.JAVA+JS如何在HTML页面上显示WORD文档内容?ActiveX只能兼容IE不考虑!_百度知道.html(https://zhidao.baidu.com/question/74594982 ...

  6. 欢迎来到 Flask 的世界

    欢迎来到 Flask 的世界 欢迎阅读 Flask 的文档.本文档分成几个部分,我推荐您先读 < 安装 >,然后读< 快速上手 >.< 教程 > 比快速上手文档更详 ...

  7. flask学习(九):模板渲染和参数传递

    一. 如何渲染模板 1. 模板放在templates文件夹下 2. 从flask中导入render_template函数 3. 在视图函数中,使用render_template函数,渲染模板 注意:只 ...

  8. 20.并发容器之ArrayBlockingQueue和LinkedBlockingQueue实现原理详解

    1. ArrayBlockingQueue简介 在多线程编程过程中,为了业务解耦和架构设计,经常会使用并发容器用于存储多线程间的共享数据,这样不仅可以保证线程安全,还可以简化各个线程操作.例如在“生产 ...

  9. 第一阶段考试:实战Linux系统日常管理

    1. [项目名称] 实战Linux系统日常管理 [项目说明] 1.安装部署rhel系统,组建RAID磁盘阵列. 2.安装nginx 通过脚本编写 nginx服务服务启动脚本 [项目考核技能点] 1.安 ...

  10. 修改Pycharm for Mac背景色

    Mac 上面的Pycharm的背景是白色,太刺眼,网上教程那么多,实用性都不高,最终在csdn找到了一个. 修改步骤如下: pycharm -->Preferences --> Appea ...