2015-09-27 git学习
创建
初始化
git init Initialized empty Git repository in <file>
关联
git remote add origin <git@server-name:path/repo-name.git>
克隆:
git clone <git@server-name:path/repo-name.git>
从已有远程库中拷贝
查看
状态日志
git status
提交内容日志
git log
分支合并日志
git log --graph
操作步骤日志
git reflog
差异日志
git diff
远程库信息
git remote -v
提交&撤销
提交
提交代码更改分两个阶段:
- 从工作目录,提交到stage;
- 从stage提交到master;
从工作目录提交到stage
- 新增
单个文件:git add <file>多个文件:git add -A
- 删除
单个文件:git rm <file>多个文件:git rm -A
只提交到stage,而没有提交到master,是不会自动同步到master的
- 新增
从stage提交到master
git commit
退回
退回也是要分两步:
- 从master退回到stage;
- 从stage退回到工作目录;
- 对于还没有提交到stage的
单个文件:git checkout --<file>多个文件:git checkout master/develop
退回一步取stage中的文件状态,覆盖掉工作目录中文件的状态,跟master完全没关系。
- 对于已经到达stage的
单个文件:git reset HEAD file多个文件:git reset HEAD^
把state中的文件状态用master中的覆盖掉,这样就把stage中修改用master的状态覆盖掉了,完全跟工作目录没关系
更新
第一次推送
git push -u origin master
推送最新修改
git push origin master
分支
查看分支:
git branch
创建分支:
git branch <name>
切换分支:
git checkout <name>
创建+切换分支:
git checkout -b <name>
合并某分支到当前分支:
git merge <name>
合并分支时,如果可能,Git会用
Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息

git merge --no-ff -m "merge with no-ff" <name>
因为本次合并要创建一个新的commit,所以加上
-m参数,把commit描述写进去

推送分支
git push origin <master>
git rebase与git marge的差异

将当前分支更新为最新的目标分支分支
git rebase <origin>
应用修改提交
git rebaes --continue
终止流程
git rebaes --abort
跳过此版本
丢弃本地修改,慎用
git rebaes --skip
删除分支:
git branch -d <name>
bug分支
储藏
git stash
将目前当所有修改用油纸包起来,快速地将工作环境恢复到上一个commit时的状态
并不是不想提交,而是工作进行到一半,线上缺陷来了,没法提交
- 线上缺陷储藏步骤
git stash //储藏现有工作分支(一般为develop)git checkout <master> //切换至master分支git checkout -b <issus-911> //在master分支上创建issus-911分支git add <fix.java> //添加缺陷修改文件git commit -m <"fix bug 911"> //提交缺陷修改文件git checkout <master> //切换回master分支git merge --no-ff <issus-911> //将issus-911分支合并至mastergit checkout <develop> //切换至develop分支git merge --no-ff <issus-911> //将issus-911分支合并至develop
查看储藏
git stash list
恢复储藏
git stash apply <stash@{0}>
删除储藏
git stash drop
恢复并删除储藏
git stash pop
feature分支
- 新feature开发步骤
git checkout -b <new feature 119> //在develop分支上创建issus-911分支git add <feature.java> //添加新文件git commit -m <"new feature 119"> //提交新文件git checkout <develop> //切换至develop分支git merge --no-ff <new feature 119> //将new feature119分支合并至developgit branck -d <new feature 119> //将new feature119
标签
查看标签
git tag
创建标签
git tag <v1.0>
别名
命令嫌太长了,可以取个别名
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
2015-09-27 git学习的更多相关文章
- Git学习(二)(2015年11月18日)(2016年1月29日)
2015年11月18日Git学习: .Shell 删除文件夹及其所有文件 rd/s/q 文件目录 ---------------当前为先创建本地Git库后与网上Git服务器关联------------ ...
- [.net 面向对象程序设计进阶] (27) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git
[.net 面向对象程序设计进阶] (26) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git 本篇导读: 接上两篇,继续Git之旅 分布式版本控制系统 ...
- GIT学习(二)
学习地址: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 常用git命令: 1. ...
- SVN和Git的功能和区别,尚学堂SVN和Git学习视频资料免费下载
对于软件开发人员来说,版本控制系统再熟悉不过了,所谓版本控制系统就是软件项目开发过程中用于储存开发人员所写代码所有修订版本的软件.目前常见的版本控制系统分为集中式版本控制系统(SVN)和分布式版本控制 ...
- Git 学习(八)其他
Git 学习(八)其他 通过以上七章Git的学习,基本操作已差不多了,本章介绍一点落网之鱼: 包括如何忽略文件.配置别名.以及使用GitHub等. 当然,Git的强大远不是七章内容可概括的,之后可结 ...
- Git学习-->如何通过Shell脚本实现 监控Gitlab备份整个过程并且通过邮件通知得到备份结果?
一.背景 Git学习–>如何通过Shell脚本自动定时将Gitlab备份文件复制到远程服务器? http://blog.csdn.net/ouyang_peng/article/details/ ...
- [转]git学习------>git-rev-parse命令初识
git学习------>git-rev-parse命令初识 2017年06月13日 10:04:13 阅读数:2172 一.准备工作 第一步:在d盘git test目录下,新建工作区根目录dem ...
- Git学习笔记--实践(三)
文中红色的文字(标为:## 插曲)是在Git学习/实践过程中,我个人遇到的一些问题,每个“## 插曲”之后,都有相应的解决方案. 一.创建版本库 版本库又名仓库,英文名repository,可简单的理 ...
- Git 学习看这篇就够了!
Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. 可能新手会问"git和github有什么关系啊?" git是一个版本控制工具: githu ...
- Git学习笔记与IntelliJ IDEA整合
Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...
随机推荐
- windows 允许空密码登陆
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa 这个注册表键值下的limitblankpassworduse项 修改为0或者1
- yii添加验证码 和重复密码
<?phpnamespace frontend\models; use common\models\User;use yii\base\Model;use Yii; /** * Signup f ...
- cmd从新获取ip
1.ipconfig/release 2.ipconfig/renew
- jstl-日期格式化-jsp页面需引入fmt标签
jsp页面需引入fmt标签: <taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"> ...
- python pbr 打包
在之前学习stevedore时,在setup.py中使用setuptools打包发布了代码,然后调用代码中的实例化对象.参考我的文章 https://www.cnblogs.com/CaesarLin ...
- 基于oslo_messaging的RPC通信
oslo_messaging源于Openstack的一个经典的模块,用以实现服务间的RPC通信.Client端将数据放入rabbitmq中,server端从消息队列中获取传送数据. oslo.mess ...
- Camstar :新加的modeling对象没有在 modeling的下拉框中显示
解决: 对象的maint 的 advance option client ui 要打上勾.
- JTAG-测试数据寄存器
1.问题:JTAG中的数据寄存器的结构 JTAG标准规定了两个必须的数据寄存器: 1.旁通寄存器 2.边界扫描寄存器(已经在可测性设计-扫描通路中介绍了) 可选的的寄存器有: 1.器件标示寄存器(32 ...
- 188. Best Time to Buy and Sell Stock IV (Array; DP)
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
- unity3D OnTriggerEnter和OnCollisionEnter的区别
1,测试OnTriggerEnter和OnCollisionEnter的区别 测试:如果两个物体A,B 两者都有碰撞体collider(Box Collider,Sphere Collider,Cap ...
命令嫌太长了,可以取个别名
git config --global alias.st statusgit config --global alias.co checkoutgit config --global alias.ci commitgit config --global alias.br branch
2015年11月18日Git学习: .Shell 删除文件夹及其所有文件 rd/s/q 文件目录 ---------------当前为先创建本地Git库后与网上Git服务器关联------------ ...
[.net 面向对象程序设计进阶] (26) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git 本篇导读: 接上两篇,继续Git之旅 分布式版本控制系统 ...
学习地址: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 常用git命令: 1. ...
对于软件开发人员来说,版本控制系统再熟悉不过了,所谓版本控制系统就是软件项目开发过程中用于储存开发人员所写代码所有修订版本的软件.目前常见的版本控制系统分为集中式版本控制系统(SVN)和分布式版本控制 ...
Git 学习(八)其他 通过以上七章Git的学习,基本操作已差不多了,本章介绍一点落网之鱼: 包括如何忽略文件.配置别名.以及使用GitHub等. 当然,Git的强大远不是七章内容可概括的,之后可结 ...
一.背景 Git学习–>如何通过Shell脚本自动定时将Gitlab备份文件复制到远程服务器? http://blog.csdn.net/ouyang_peng/article/details/ ...
git学习------>git-rev-parse命令初识 2017年06月13日 10:04:13 阅读数:2172 一.准备工作 第一步:在d盘git test目录下,新建工作区根目录dem ...
文中红色的文字(标为:## 插曲)是在Git学习/实践过程中,我个人遇到的一些问题,每个“## 插曲”之后,都有相应的解决方案. 一.创建版本库 版本库又名仓库,英文名repository,可简单的理 ...
Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. 可能新手会问"git和github有什么关系啊?" git是一个版本控制工具: githu ...
Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa 这个注册表键值下的limitblankpassworduse项 修改为0或者1
<?phpnamespace frontend\models; use common\models\User;use yii\base\Model;use Yii; /** * Signup f ...
1.ipconfig/release 2.ipconfig/renew
jsp页面需引入fmt标签: <taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"> ...
在之前学习stevedore时,在setup.py中使用setuptools打包发布了代码,然后调用代码中的实例化对象.参考我的文章 https://www.cnblogs.com/CaesarLin ...
oslo_messaging源于Openstack的一个经典的模块,用以实现服务间的RPC通信.Client端将数据放入rabbitmq中,server端从消息队列中获取传送数据. oslo.mess ...
解决: 对象的maint 的 advance option client ui 要打上勾.
1.问题:JTAG中的数据寄存器的结构 JTAG标准规定了两个必须的数据寄存器: 1.旁通寄存器 2.边界扫描寄存器(已经在可测性设计-扫描通路中介绍了) 可选的的寄存器有: 1.器件标示寄存器(32 ...
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
1,测试OnTriggerEnter和OnCollisionEnter的区别 测试:如果两个物体A,B 两者都有碰撞体collider(Box Collider,Sphere Collider,Cap ...