Git复习步骤
1.首先肯定是安装与配置了
首先要下载Git,然后设置用户名/邮箱
如果有远程仓库,则需要通过 ssh-keygen -t rsa 或者 ssh-keygen -t rsa -C "youremail@example.com" 在主目录生成.ssh文件夹。再将公钥放到远程仓库对应位置,如github
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复习步骤的更多相关文章
- Git学习系列之Windows上安装Git详细步骤(图文详解)
前言 最初,Git是用于Linux下的内核代码管理.因为其非常好用,目前,已经被成功移植到Mac和Windows操作系统下. 鉴于大部分使用者使用的是Windows操作系统,故,这里详细讲解Windo ...
- 项目git的步骤,将项目托管到码云
项目git的步骤 1.创建.gitignore文件,进行文件过滤.写着不需要上传到git仓库的文件夹名字 2.readme.md 3.拷贝LICENSE,开源协议 4.创建本地仓储 * 使用git i ...
- 生成 git 密钥 步骤
http://blog.csdn.net/wfdtxz/article/details/8678982 git使用https协议,每次pull, push都要输入密码,相当的烦.使用git协议,然后使 ...
- Mac git提交步骤小记
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 19.0px; font: 13.0px "PingFang SC"; c ...
- git安装步骤
Git简单使用说明 安装git msysgit是Windows版的Git,从https://git-for-windows.github.io下载,然后按默认选项安装即可(注:安装适合自己电脑版本的g ...
- git使用步骤_2017
(部署项目) zbot deploy developer git对文件chmod 777后导致status发生变化,使用: git config core.fileMode false [当 ...
- git使用步骤
1报名出处: git config --global user.name lhp 用户名 git config --global user.email a@.qq.com 邮箱 2.建立项目文件夹: ...
- git提交步骤
1,为了确定在本地分支下操作,可以用命令查看一下是否在本地分支 git branch 2,可以查看状态,是否添加了哪些内容 git status 3,如果确认无误,使用命令进行提交本地代码,并加上注释 ...
- git merge 步骤
这两天用git比较多,自己学习的过程踩了不少误区,特意记录下来. 当多人合作开发使用git作为代码管理仓库时,要注意自己的更新不能冲掉别人的更新,因为自己一开始不了解的时候就出现了这种情况.首先一定要 ...
随机推荐
- mac上sed -i 执行失败报错
比如说我要替换version.txt文件中的version=1.1 为version=1.2,比如test.txt文件内容如下: version=1.1 此时我们会使用sed来替换,如果是涉及比较多的 ...
- 一、初识CocoaPods——XCode的依赖库管理工具
概述 任意一款功能完整的APP,其中所涉及的内容都将是来自各个领域各个方面的.如果每个领域的每个方面都要重新开发并给予充分测试,那么1个APP的开发周期将会变得非常漫长,长到足以让房价再涨一倍,长到足 ...
- html 类似雷达扫描效果 及 闪屏效果
//雷达扫描效果 1 <em id="Radar" class="RadarFast"></em> css: .RadarFast{ p ...
- Unity 利用UGUI打包图集,动态加载sprite资源
今天做了一个UI界面,这个界面是好友界面,该界面上有若干个好友item. 需要对每个tem的头像对象(image)动态显示对应的头像.尝试利用UGUI的图集来加载,具体实现如下: 1.首先,需要知道S ...
- CentOS 7 部署GitLab
GitLab概述 : 是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过 Web 界面进行访问公开的戒者私人项目.Ruby on Rails 是一个可以 ...
- 全局路径规划算法Dijkstra(迪杰斯特拉算法)- matlab
参考博客链接:https://www.cnblogs.com/kex1n/p/4178782.html Dijkstra是常用的全局路径规划算法,其本质上是一个最短路径寻优算法.算法的详细介绍参考上述 ...
- React脚手架create-react-app
1.安装过程 $cnpm install -g -create-react-app $create-react-app apps $cd apps/ $npm start 2.图片路径 不能用相对路径 ...
- ssh很慢的问题转子
根据网上的解决办法解决了,记录一下: 问题:ssh ***@192.*.*.* ,然后就一直卡在这个地方,很久以后才会出现让输入密码的提示 解决办法:1.关闭防火墙--chkconfig ipta ...
- mysql_study_1
创建数据库 创建表 数据类型 插入数据的几种方法 约束 代码 CREATE DATABASE mysql_shiyan; use mysql_shiyan; CREATE TABLE departme ...
- 【源码】HashMap源码及线程非安全分析
最近工作不是太忙,准备再读读一些源码,想来想去,还是先从JDK的源码读起吧,毕竟很久不去读了,很多东西都生疏了.当然,还是先从炙手可热的HashMap,每次读都会有一些收获.当然,JDK8对HashM ...