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. ThinkPHP安全规范指引

    流年 发布于 ThinkPHP官方博客: https://blog.thinkphp.cn/789333 本文主要和大家探讨一下ThinkPHP的安全注意事项,可以作为ThinkPHP建议的安全规范实 ...

  2. MessengerJS

    跨文档通信解决方案 Since modern browsers have native cross-document communication method(the PostMeessage API ...

  3. 学习git之路--1

    1. 在文件内右键选择git.bash2.打开工具后,输入git init 创建.init文件3.git config --global 'sk' 创建用户名4.git config --global ...

  4. mac 添加环境变量(jmeter添加至环境变量中)

    Mac系统的环境变量,加载顺序为:a. /etc/profileb. /etc/pathsc. ~/.bash_profiled. ~/.bash_logine. ~/.profilef. ~/.ba ...

  5. Mybatis的bind动态SQL

    bind标签用于在SQL执行的上下文中绑定一个变量,方便在后续中直接使用:下面的例子中将name参数拼接成模糊查询需要的字符串然后和bindName绑定,在后面的使用中可以直接使用bindName变量 ...

  6. Kendo DropDownListFor值传不回去的小坑

    做项目时,在KendoWindow弹框里面写了个表单提交,不小心把AreaId  下拉框设置了Name为“OrderAreaId”.在后台接收不到AreaId的参数.后来才发现是Name的设置强行把A ...

  7. 201903<<高效15法则>>

    高效15法则,这本书作为时间管理的入门书籍,易读易理解,结构清晰,但是中间的某些篇幅内容过于拖沓....

  8. Centos7 安装redis

    1.下载redis安装包 wget http://download.redis.io/releases/redis-4.0.9.tar.gz 2.检查及下载gcc gcc -v yum -y inst ...

  9. 关于表格table嵌套,边框合并问题的解决方法,table嵌套(转)

    原文地址:http://www.cnblogs.com/zhangym118/archive/2016/05/16/5496931.html [问题] 外层table与内层table嵌套,内外表格都需 ...

  10. C++编译优化备忘

    基于GCC测试:http://www.tutorialspoint.com/compile_cpp11_online.php const A& a=fun() 与 A a= fun() 1.方 ...