一、git对象模型和存储

二、常用命令

1)git checkout branch 切换分支

假设现在有两个分支,master和dev分支

i dev分支上没有readme.txt

  在master分支上我修改了readme.txt但是没有commit到本地仓库,那么在dev分支上仍然会看到readme.txt

  在master分支上我修改了readme.txt并且commit到本地仓库,那么dev分支上没有readme.txt

ii dev分支上存在readme.txt

  在master分支上我修改了readme.txt但是没有commit到本地仓库,切换失败,提示commit后再切换分支

  在master分支上我修改了readme.txt并且commit到本地仓库,切换成功,两个readme.txt互不影响

2)git checkout master~3 将HEAD指针回退,并取出其中的数据添加到工作区和缓存区

因为是添加而非覆盖,所以当你在ed489上做的操作,没有commit时,当切换到b325,仍然可以看到那些未commit的文件。

如果现在在b325上做了修改,并且commit了,则commit的内容会丢失,因为切换到b325时,并不在任何一个分支上,此时显示的是:

如果想要这次更改,可以在commit前,git checkout -b branchName,将这个位置新建为一个分支,然后commit,此时的修改内容可以在新的分支上查找到。

3) git checkout master~3 filename 将filename这个文件切换到之前的版本,注意切换后仍然在master分支上,是用b325中的filename文件覆盖了ed489的filename,此时commit会生成新的校验和,也就是新的commit

4) git revert b325c 将b325c的commit复制到当前commit末尾,生成新的commit,是较安全的版本回退

5)git cherry-pick commitID 将commitID重演,并在当前commit链表末尾添加新的commit,同时将此时文件添加到stage和working directory

6) git diff

git 本地仓库操作的更多相关文章

  1. git 学习(1) ----- git 本地仓库操作

    最近在项目中使用git了,在实战中才知道,以前学习的git 知识只是皮毛,需要重新系统的学一下,读了一本叫  Learn Git in a Month of Lunches 的书籍,这本书通俗易懂,使 ...

  2. Git 学习(三)本地仓库操作——git add & commit

    Git 学习(三)本地仓库操作——git add & commit Git 和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念.这在上文已有提及,本文具体说明什么是工作区及暂存区,以及 ...

  3. Git单人本地仓库操作

    本地仓库是个.git隐藏文件 以下为演示Git单人本地仓库操作 1.安装git sudo apt-get install git 密码:skylark 2.查看git安装结果 git 3.创建项目 在 ...

  4. 01-Git单人本地仓库操作

    Git源代码管理 Git(多人协同开发同一个项目),作用就是源代码管理,为什么需要源代码管理呢,方便多人协同开发,并且方便版本控制. Git管理源代码特点: 1.Git是分布式管理.服务器和客户端都有 ...

  5. Git本地仓库和远程仓库冲突解决

    场景描述: 在本地创建了一个git repo,并且执行了,git init命令,创建了.gitignore文件,或者README.md文件: 在远程创建了一个git repo,创建时也初始化了.git ...

  6. Git本地仓库与远程github同步的时候提示fatal: remote origin already exists 错误解决办法

    Git本地仓库与远程github同步的时候提示fatal: remote origin already exists 错误解决办法 1.git在本地的电脑创建了仓库,要远程同步github的仓库.使用 ...

  7. Git - Git本地仓库与GitHub远程仓库关联

    前言 Git本地仓库与GitHub仓库的关联逻辑如下 创建Key 在本地仓库下,新建Key文件夹,然后打开Key文件夹,单击鼠标右键,选择Git Bash Here. 输入命令:ssh-keygen ...

  8. 创建Git本地仓库

    一.获取Git仓库 安装好Git后即可创建Git本地仓库,开始项目的版本管理.有两种方法取得Git项目仓库:1.在现有项目或目录下导入所有文件到Git中:2.从一个服务器克隆一个现有的Git仓库. 1 ...

  9. Git 本地仓库(使用小乌龟进行操作,一个人开发)

    一.首先在本地创建版本库 创建成功最明显的特征是该目录下存在一个隐藏文件夹(.git) 前提:已设置显示隐藏文件 三种方式: 1.Git GUI Here(右击) 2.Git Bash Here(右击 ...

随机推荐

  1. storm 为什么要存在不透明分区事务

    不透明分区事务不区分发新消息还是旧消息,全部用emitPartitionBatch搞定,虽然 emitPartitionBatch返回的X应该是下一批次供自己使用(emitPartitionBatch ...

  2. 集训队日常训练20180525-DIV2

    A.2295 求有多少素数对和等于n. 暴力. #include <bits/stdc++.h> using namespace std; int ss(int n) { ,a=sqrt( ...

  3. NOIP模拟 17.9.28

    公交车[问题描述]市内有

  4. spring源码学习之bean的加载(一)

    对XML文件的解析基本上已经大致的走了一遍,虽然没有能吸收多少,但是脑子中总是有些印象的,接下来看下spring中的bean的加载,这个比xml解析复杂的多.这个加载,在我们使用的时候基本上是:Bea ...

  5. Spring_代理

    1.代理模式. 2.静态代理原理及实践. 3.动态代理原理及实践. 4.Spring AOP原理及实战. 静态代理原理及实践 package test.staticProxy; // 接口 publi ...

  6. 拦截导弹 (最长上升子序列LIS)

    #include <iostream> #include <stdio.h> #include <algorithm> using namespace std; ] ...

  7. django 验证码(django-simple-captcha)

    django 验证码(django-simple-captcha) django-simple-captcha 官方文档(含基于modelForm的用法)  https://django-simple ...

  8. Lambada. 计算和

    Lambada. 计算和 import java.util.Arrays; import java.util.List; public class ListLambada { public stati ...

  9. Vue动态加载异步组件

    背景: 目前我们项目都是按组件划分的,然后各个组件之间封装成产品.目前都是采用iframe直接嵌套页面.项目中我们还是会碰到一些通用的组件跟业务之间有通信,这种情况下iframe并不是最好的选择,if ...

  10. 配置了两天python【python可以的】

    首先是看cs231n 发现代码的版本是py2 而我只装了 py3(anaconda3) 怎么办呢 于是想办法装了 anaconda2 并与之共存 ,调用的时候用 activate py2调用 http ...