git实战经验(很实用)
推荐学习git很好的网站
https://www.breakyizhan.com/git/216.html
以下内容,虽然编排不行,但是请认真的读下去,都是自己平时请自操作的,放心使用.
这是个人的github,喜欢请支持一下,欢迎star
https://github.com/haibiscuit
个人qq:614718165 (加我时请标明添加原因)
一:一般操作
(1).如果是第一次操作(需求一)
git init #初始化本地仓库
git remote add origin https://username:password@github.com/huzhicheng/test__11.git #本地仓库与远程仓库建立联系
git pull #先拉取远程仓库内容,即版本更新(很重要)
//或者
git fetch --all && git reset --hard origin/master && git pull #在修改前远程强制覆盖本地代码(注意本地内容会被覆盖,在执行此命令前本地不要有内容)
git status #查看本地仓库状态
git add README.md #将README.md文件添加到暂存区
git commit -m "first commit" #将暂存区内容保存到本地
git push -u origin master #推送本地修改到远程master分区
二:参与已有项目
需求说明:远程仓库已经存在,并且仓库中已有文件
具体操作:
(1).方式一
git clone https://username:password@github.com/haibiscuit/AioSocket.git #此时不会覆盖本地新增的内容
cd AioSocket #直接进入项目目录便可以操作
(2).方式二
git init #新建仓库
git remote add origin https://username:password@github.com/huzhicheng/test__11.git #本地与远程仓库建立关联
git fetch --all && git reset --hard origin/master && git pull #强制覆盖本地仓库,即可操作
三:远程代码强制覆盖本地代码(可以解决本地与远程版本的冲突)
需求说明:用于远程与本地版本的同步
具体操作:
(1).方式一
git强制覆盖:
git fetch --all #从远程获取最新版本到本地,不会自动merge
git reset --hard origin/master #回退到远程的版本,不执行这一步本地看不到拉取的内容
git pull #这一步非常重要,从远程获取最新版本并merge到本地(弥补fetch的缺点)
(2).方式二
git强制覆盖本地命令(单条执行):
git fetch --all && git reset --hard origin/master && git pull
四:本地仓库与远程仓库的回退技巧
(1).git reset
适用场景:恢复到之前提交的版本,且那个版本之后的提交都不要了
标准格式:
git reset --soft|--mixed|--hard <commit_id> #一般选择--hard参数,源码会回退到某个版本,commit和index 都会回退到某个版本
示例:
git reset --hard HEAD^ #本地回退到上一个版本
git push -f #强制推送,使远程版本回退(不推荐)
(2).git revert
原理:通过反做在当前版本的下面再创建新的版本
需求说明:想要恢复之前的版本,又想保留目标版本之后的版本
标准格式:
git revert <commit_id>
示例:
git revert HEAD #回退到上一个版本(用着很不爽,不过很推荐使用)
git commit -m "版本号"
git push
补充:
git revert HEAD #撤销前一次提交
git revert HEAD^ #撤销前前一次提交
git revert HEAD~n #撤回前n+1次提交
五:本地仓库与远程仓库创建关联和移除关联
(1).本地仓库与远程仓库创建关联
git remote add origin https://username:password@github.com/huzhicheng/test__11.git
(2).本地仓库与远程仓库取消关联
git remote remove origin
六:本地仓库与远程仓库的版本信息查看(在修改本地仓库时先查看版本信息)
(1).本地仓库的版本信息查看
git log #简便的方式
git reflog #打印更加详细
(2).远程仓库的版本信息查看
git log origin/master -n 3 #打印三条版本的日志
七:撤销暂存区修改
1.如果未放入暂存区(即未使用git add命令)
git checkout --filename
//或是放弃所有的修改
git checkout
2.已经放入暂存区,从暂存区移除
git reset HEAD filename
//或是撤销所有的暂存区的内容
git rm --cached file
(接着使用第一步的git checkout --filename)
八:分支操作
(1).创建分支 :不同分支上的操作互不影响 (master只是git为你默认创建的一个分支,和自己创建的一样,只是名字不同)
git branch <branch-name> //创建分支
(2).推送到远程服务器(即,使本地主机上的指针推送到远程主机)
git push origin <branch-name>
(3). 查看不同的分支
git branch -a //查看本地和远程的所有分支
git branch -r //查看远程分支
git branch -l //查看本地分支
git branch -v //查看每一个分支的最后一次提交
git branch --merged //查看哪些分支已经合并到当前分支 --no
(4).查看各个分支当前所指对象
git log --oneline --decorate
(5). 切换分支
git checkout <branch-name>
git checkout -b <branch-name> //相当于两条命令,一条创建,一条切换
git checkout -b issue53 //创建 issue53分支并切换
(6). 合并分支
git merge <branch-name> //将当前所在的分支和 <branch-name>合并 ,简单将指针向前推进(fast-forward)
★合并有冲突的分支:按上面所述命令合并后,有冲突的文件会以未合并状态(unmerged)标识出来,使用git status 查看,然后手动解决,解决后用git add标示已解决
git status
git add
(7).删除分支
git branch -d hotfix //对于已合并的分支,删除分支hotfix
git banch -D hotfix // 对于未合并的分支 ,强行删除分支
(8). 推送 :将代码推送到远程服务器上
git push <remote-name> <branch-name>
git push origin master //推送到远程的origin服务器的master分支上
git push origin <local branch-name>:<remote branch-name> //本地和服务器上的分支名不同
git push origin servefix:remote-server //将本地的serverfix推送到远程的origin的remote-server上
(9). 拉取
git pull //相当于git fetch 然后 git merge
(10).跟踪分支
★从远程服务器上检出本地分支会自动创建一个跟踪分支(上游分支),git pull就是根据跟踪分支来向那个分支抓取
★检出并创建分支和其快捷方式
git checkout -b <local branch-name> <remote-name>/<branch-name>
git checkout --track <remote-name>/<branch-name> //创建并检出分支的快捷方式
i.e
git checkout --track origin/develop
(11). 删除远程分支
git push origin --delete serverfix //删除远程分支serverfix
九:经验总结
(1).在使用git push -u origin master时本地版本需要和远程仓库的版本一致,否则不能提交信息
git实战经验(很实用)的更多相关文章
- 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 特殊问题和实战经验(五)
RAC 特殊问题和实战经验(五) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...
- (转)国内外三个不同领域巨头分享的Redis实战经验及使用场景
随着应用对高性能需求的增加,NoSQL逐渐在各大名企的系统架构中生根发芽.这里我们将为大家分享社交巨头新浪微博.传媒巨头Viacom及图片分享领域佼佼者Pinterest带来的Redis实践,首先我们 ...
- 12个git实战建议和技巧
摘要:git无疑是现在最热门的版本控制工具,而且正在进一步侵占SVN以及CVS的市场.本文作者从国外技术问答社区Stack Overflow整理的12个很实用的git使用技巧和建议,希望对你有帮助. ...
- MySQL数据库的优化-运维架构师必会高薪技能,笔者近六年来一线城市工作实战经验
原文地址:http://liangweilinux.blog.51cto.com/8340258/1728131 首先在此感谢下我的老师年一线实战经验,我当然不能和我的老师平起平坐,得到老师三分之一的 ...
- MySQL索引实战经验总结
MySQL索引对数据检索的性能至关重要,盲目的增加索引不仅不能带来性能的提升,反而会消耗更多的额外资源,本篇总结了一些MySQL索引实战经验. 索引是用于快速查找记录的一种数据结构.索引就像是数据库中 ...
- 第9期Unity User Group Beijing图文报道:《Unity实战经验分享》
时间来到了金秋九月,北京UUG活动也来到了第九期.本次活动的主题为<Unity实战经验分享>,为此我们邀请了3位资深的行业大神.这次我们仍然在北京市海淀区丹棱街5号微软大厦举行活动,在这里 ...
- Jenkins高级用法 - Jenkinsfile 介绍及实战经验
系列目录 1.Jenkins 安装 2.Jenkins 集群 3.Jenkins 持续集成 - ASP.NET Core 持续集成(Docker&自由风格&Jenkinsfile) 4 ...
- HDFS配置参数及优化之实战经验(Linux hdfs)
HDFS优化之实战经验 Linux系统优化 一.禁止文件系统记录时间 Linux文件系统会记录文件创建.修改和访问操作的时间信息,这在读写操作频繁的应用中将带来不小的性能损失.在挂载文件系统时设置no ...
- Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)
Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码) 转 https://blog.csdn.net/lhl1124281072/article/details/800 ...
随机推荐
- Excel、记事本数据导入到数据库
将手机号批量导入数据库.思路:先将要导入的文件传上项目里,然后读取文件的每行数据并插入数据库,操作完后再将上传的文件删除 文件示例: Excel: 记事本: 前台代码: <div class ...
- 树莓派的rc.local档(设置开机)
为了树莓派执行命令或程序时启动.需要被添加到顺序rc.local档.这是为那些谁执行后,直接要权力树莓派没有配置.或者不希望每次都手动启动该程序很实用. 的方法是使用cron和crontab. EDI ...
- 关于easyui-accordion的添加以及显示隐藏菜单的使用
<script type="text/javascript"> $(function() { leftMenus(); }); function leftMenus() ...
- Spring boot配置说明
要加“m”说明是MB,否则就是KB了. -Xms:初始值 -Xmx:最大值 -Xmn:最小值 java -Xms80m -Xmx80m -jar mod.jar 时区设置 java -jar -Dus ...
- 【剑指offer】直扑克
个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想測測自己的手气,看看能不能抽到顺子,假设抽到的话,他决定去买体育彩票,嘿嘿! ! "红心A,黑桃3,小王,大王,方 ...
- matlab 类型转换(类型判断)
char:Convert to character array,转换为字符数组:matlab 下没有 str 字符串类型转换: char(0-255) ⇒ ASCII 码的转换: im2double( ...
- 微信小程序之加载更多(分页加载)实例
业务需求: 列表滚动到底部时,继续往上拉,加载更多内容 必备参数: (1)pageindex: 1 //第几次加载 (2)callbackcount: 15 //需要返回数据的个数 其他参数: 根据接 ...
- opengl编程指南 第七版 源代码bug Page35 lines.c 红宝书
问题1:根据源代码时,我发现的时候去敲门.不正确实施效果.哪里是不正确?没有源代码glPushAttrib(GL_LINE_STIPPLE) glPopAttrib().所以会出现最后的下一次抽奖提供 ...
- eclise配置tomcat出现服务Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4 and Java EE 5 Web modules
当部署项目Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, 1.5 and Java EE 5 Web modules错;解决方案,如下面: 空 ...
- node.js开发笔记之EXPRESS与EJS之ejs标签v20140329
本次记录下ejs的渲染标签 node既然是javascrip的,那么很多在前端执行代码的方式都可以放在后台从而达到无缝连接! 比如 var ygxx = function(){document.get ...