1.首先肯定是安装与配置了

  首先要下载Git,然后设置用户名/邮箱

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137396287703354d8c6c01c904c7d9ff056ae23da865a000

  如果有远程仓库,则需要通过 ssh-keygen -t rsa 或者 ssh-keygen -t rsa -C "youremail@example.com"  在主目录生成.ssh文件夹。再将公钥放到远程仓库对应位置,如github

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001374385852170d9c7adf13c30429b9660d0eb689dd43a000

2. 添加.gitigonre

  http://www.softwhy.com/article-8539-1.html

3.提交流程

  a.已经在本地提交

  merge,如果不是快速合并,会生成新的提交记录。遇到冲突时,需要解决冲突,然后add,commit.

  rebase,不会生成新的提交。遇到冲突,解决,add,不需要提交, 而是rebase --continue.就可以了

  aa)如果本地有只有一个分支,git pull --rebase.即可。遇到冲突,解决,add,然后rebase --continue就好了。

  ab)但是,如果本地有master ,dev两个分支,但只通过master提交的话:
  首先进入master,git pull,拉取远程仓库最新代码
  再进入dev分支,git rebase master.将dev分支处理好
  最后进入master分支,git merge dev 进行快速合并,再在master上push,这样就不会产生无意义的提交

  ac)其实最正常是这个:

  如果本地有master ,dev两个分支,通过dev提交的话:
  首先进入master,git pull,拉取远程仓库最新代码
  再进入dev分支,git rebase master.将dev分支处理好,在dev分支push自己的代码

  b. 本地未提交:
  如果本地只有一个分支,用stash的方式也可以,工作区间代码不提交(注意,上文中的工作区间修改都需要提交),stash起来,然后,git pull.
  然后运用stash, 遇到冲突(没冲突的自动放到index区间,有冲突的留在工作区间待解决),解决,add, 最后提交

3.修改

  a. 如果要删除工作区, git checkout --filename

  b. 如果将暂存区回退至工作区, git reset head

4. git reset深入理解(把握主线:HEAD的指向)

  暂存区和本地仓库其实也是两个指针

git reset的mixed模式, 会对两个区域都进行回退(默认),git reset head回退到本地仓库当前HEAD,这个时候,本地仓库不变(因为未提交),暂存区回退至与本地仓库等齐的HEAD,导致工作区指针比暂存区超出一个修改,产生了将暂存区内容回退至工作区的现象。(个人的理解,正式一点的可以看下面的描述)

 

 一下三种模式本质上就是是否用本地仓库的内容   覆盖本地仓库自身/soft,   覆盖暂存区/mixed, 覆盖工作区/hard

 --soft:暂存区不会被替换。只更改本地仓库。工作区内容不变

--mixed:默认值,当重置分支本地仓库所指向commit提交位置时,暂存区中的内容会被 本地仓库内容所替换,工作区内容不变

 --hard:暂存区和工作区的内容都会被新指向的commit提交内容所替换;git reset --hard只影响被跟踪的文件,如果工作区有新增的文件,并不会被影响。

  综上,将内容回退至工作区,head是本地仓库commit的指向, reset默认mixed

  a.未提交: git reset head

b. 已提交:git reset head^

5. reset与revert的区别

6. git stash详解

  git stash save 'expamle message' 储藏全部文件, save无法储藏指定文件
  git stash push -m 'example message' push, 可以储藏全部文件
  git stash push example/example.txt -m 'example message' push, 可以储藏指定文件
  stash好文:http://www.softwhy.com/article-8628-1.html
  强烈推荐:蚂蚁部落 www.softwhy.com

7. git cherry-pick:https://www.jianshu.com/p/c787fa885ffd
  git cherry-pick [commit id]
  单个commit只需要git cherry-pick commitid
  多个commit 只需要git cherry-pick commitid1..commitid100 注意,不包含第一个commitid 
  如果想搞成[]区间,使用 git cherry-pick A^..B 相当于[A B]包含A

8 IDE中常见的配置:

  

Git复习步骤的更多相关文章

  1. Git学习系列之Windows上安装Git详细步骤(图文详解)

    前言 最初,Git是用于Linux下的内核代码管理.因为其非常好用,目前,已经被成功移植到Mac和Windows操作系统下. 鉴于大部分使用者使用的是Windows操作系统,故,这里详细讲解Windo ...

  2. 项目git的步骤,将项目托管到码云

    项目git的步骤 1.创建.gitignore文件,进行文件过滤.写着不需要上传到git仓库的文件夹名字 2.readme.md 3.拷贝LICENSE,开源协议 4.创建本地仓储 * 使用git i ...

  3. 生成 git 密钥 步骤

    http://blog.csdn.net/wfdtxz/article/details/8678982 git使用https协议,每次pull, push都要输入密码,相当的烦.使用git协议,然后使 ...

  4. Mac git提交步骤小记

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 19.0px; font: 13.0px "PingFang SC"; c ...

  5. git安装步骤

    Git简单使用说明 安装git msysgit是Windows版的Git,从https://git-for-windows.github.io下载,然后按默认选项安装即可(注:安装适合自己电脑版本的g ...

  6. git使用步骤_2017

    (部署项目) zbot deploy developer   git对文件chmod 777后导致status发生变化,使用: git config core.fileMode false    [当 ...

  7. git使用步骤

    1报名出处: git config --global user.name lhp  用户名 git config --global user.email a@.qq.com 邮箱 2.建立项目文件夹: ...

  8. git提交步骤

    1,为了确定在本地分支下操作,可以用命令查看一下是否在本地分支 git branch 2,可以查看状态,是否添加了哪些内容 git status 3,如果确认无误,使用命令进行提交本地代码,并加上注释 ...

  9. git merge 步骤

    这两天用git比较多,自己学习的过程踩了不少误区,特意记录下来. 当多人合作开发使用git作为代码管理仓库时,要注意自己的更新不能冲掉别人的更新,因为自己一开始不了解的时候就出现了这种情况.首先一定要 ...

随机推荐

  1. 关于11G DataGuard 日志传输的案例

    案例探讨 在归档和非归档模式下,配置参数log_archive_dest_2后,DG的备库是否传输日志. 案例环境描述 本次环境如下,一套RAC+单机DG,然后从DG还原出来一个单独的测试库A,测试库 ...

  2. 用java语言通过POI实现word文档的按标题提取

    最近有一个项目需要将一个word文档中的数据提取到数据库中.就去网上查了好多资料,最靠谱的就是用poi实现word文档的提取. 喝水不忘挖井人,我查了好多资料就这个最靠谱,我的这篇博客主要是借鉴htt ...

  3. WPF线程中获取控件的值和给控件赋值

    WPF中使用线程操作控件,按平常的操作方法操作的话会报异常:调用线程无法访问此对象,因为另一个线程拥有该对象.所以我们要使用Dispatcher类的BeginInvoke()与Invoke()方法.B ...

  4. okhttp3工具类及其使用

    先工具类 package com.bhy.bdai.util; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONAr ...

  5. mika的模板库

    二分图最大匹配: 1.匈牙利算法:注意dfs中是dfs(c[w[i]]),搜索的是与之匹配的点. #include<cstdio> #include<cstring> ],w[ ...

  6. Recycle----项目总结

    github项目地址:https://github.com/HuChengLing/recycle 软件规模: 我们这个Recycle app属于一个小型项目,整体规模不大.预期有垃圾回收和二手品交易 ...

  7. Lists.newArrayListWithExpectedSize( int estimatedSize)

    Lists.newArrayListWithExpectedSize( int estimatedSize)  构造一个期望长度为estimatedSize的ArrayList实例. 源码: publ ...

  8. Matlab学以致用--模拟os任务装载情况

    2012-06-08 21:26:42 用matlab来建模,仿真不同时刻os task在队列中的装载情况.输入参数如下 作为初学者,M文件写的有点长.能实现功能就算学以致用了. clear;clc ...

  9. c语言的一些易错知识积累

    1. #ifdef  和#if defined 的区别: 后者可以组成复杂的预编译条件,而如果判断的是单个宏定义的时候,两种用法的效果都是一样的. 2.#if 0 { code }#endif    ...

  10. 【题解】Luogu P4436 [HNOI/AHOI2018]游戏

    原题传送门 \(n^2\)过百万在HNOI/AHOI2018中真的成功了qwqwq 先将没门分格的地方连起来,枚举每一个块,看向左向右最多能走多远,最坏复杂度\(O(n^2)\),但出题人竟然没卡(建 ...