工作中对git使用的总结
git与svn的区别,简单的说,
svn在checkout后,如果不提交,那么版本库没有记录,如果修改的文件比较多,中间想回退几个文件,非常麻烦。git 是clone下来代码和记录,不提交到服务器时,可以本地多次commit,能做到部分回退,最后push到服务器,push的除了代码变更,还没有每一次的提交记录。
另外,git对一些场景比较适用,比如新需求正在开发,突然发现线上有bug,svn随着不断提交,代码已经与生产环境有差异,最好的办法是取某个时间的版本进行修改,再一点点合并进去。而git,线上与开发可以是不同分支,可以优先改线上代码,完成debug后,将线上分支merge到开发分支,就可以了。
1.clone代码
命令 git clone -b dev https://github.com/xuezhankui/SpringbootExample
黄色部分为clone dev分支,不加的话,clone下来master分支,修改分支可以通过git branch命令来改
2.git branch命令
首先,查询本地分支和远程分支都有哪些
git branch -a
黄色部分代表远程分支,没有参数显示本地分支。
其次,改变push的分支
因为是从master clone到本地master,所以master分支的push,必将上传到线上master分支,现在改一下。
情况1:如果线上有dev分支,想clone这个,但是是以masterclone下来的,
这时候只需要
git checkout -b dev origin/dev 作用是checkout远程的dev分支,在本地起名为dev分支,并切换到本地的dev分支
情况2:
使用本地dev分支,push的时候指定master分支。
虽然不建议这么做,至少给个方法
1.此做法与合并时有点像
git checkout dev 切换到dev分支
git branch --set-upstream-to=origin/master 设置push的目标
git push
2.一步搞定
git push origin master
最后,删除分支
git branch -d 要删除的分支
3.提交代码
这个简单,就简单说了
1。用git status命令,可以查看到都改了哪些文件
2.git add
两种方式,第一种,git add 路径/文件名
第二种,git add * //添加所有变更文件
3. git commit
git commit -m “注释信息”
4.合并以及冲突合并
场景:在dev_feature_xx分支改完了,需要合并进dev
方法一:
git checkout dev 切换到dev
git merge dev_feature_xx
可能会产生冲突,冲突的文件可以用git status找到
commit前也可以用 git diff dev_feature_xx dev 对比一下
合并完冲突文件
git add 冲突文件
git commit -m 'merge'
如果不确定dev对应哪个remote分支,可以执行一下
git branch --set-upstream-to=origin/dev 设置push的目的地
git push
或者
git push origin/dev
方法2:
git checkout dev
git pull origin dev_feature_xx
修改冲突文件
git add 冲突文件
git commit -m 'merge'
git push origin/dev
5 rollback
首先了解两个命令
git reflog 版本变化的记录,包含回退操作
git log 每次提交的记录,包含了注释,和commit id
方式一:
id方式 git reset <id> <文件名>
文件名不写的话,恢复所有文件
方式二:
HEAD方式,当前版本是HEAD
比如你修改了文件,后悔修改了,可以
git reset HEAD <文件名>
如果想恢复到上一个版本
git reset HEAD^
再上一个版本HEAD^^,以此类推
6.其他操作
git rm <文件名> 删除,这里指从git库删除。
相当于 rm <文件名> git add <文件名>
删除后要commit。
删除文件后的恢复:以a.txt为例
1.未commit到git库的文件,删除后就没有了
2.删除操作在执行commit之前,可以 git reset HEAD a.txt,将文件恢复到缓冲区,然后,git checkout a.txt找回。
3.删除操作已经提交,可以 git reset HEAD^ a.txt,将文件恢复到缓冲区,然后,git checkout a.txt找回。
工作中对git使用的总结的更多相关文章
- 工作中常用Git指令操作
常用Git指令总结 前阵子有几天好不顺,可谓是喝水都呛着,更何况被Git给呛着了,还不轻,哈哈.所以打算总结一下自己在工作使用到Git相关的东西以及和大家探讨使用GIt的心得体会.于是,关于Git的的 ...
- 记工作中的git遇到的问题
看了 git 回退到某版本后,再在此版本上更新,无法push 操作前,我备份了修改了目录,准备建一个分支进行操作 我在本地revert了一次,commit到了远程仓库.然后上个版本的修改给恢复了... ...
- SmartGit(我工作中使用git图形化界面工具)
http://www.syntevo.com/smartgit/ 这个工具用了快两年,之前在逸橙工作时同事(目前就职百姓网)推荐使用的,查看更改了哪些文档很方便,前天试用版过期,现在贴个 破解的链接 ...
- git工作中常用命令-工作中踩过的坑
踩坑篇又来啦,这是我在工作中从git小白进化到现在工作中运用自如的过程中,踩过的坑,以及解决办法. 1.基于远程develop分支,建一个本地task分支,并切换到该task分支 git checko ...
- 工作中git常用命令
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 16.0px; font: 14.0px "PingFang SC" } ...
- 关于工作中Git相关的总结
来公司一周多,主要是在熟悉各种环境和流程,而作为研发来讲,git的使用也是必不可少的.以前使用方式单一,几个人对着master,pull和push,来了之后发现其实在日常的开发中,git可以很方便的帮 ...
- git在工作中的用法总结-使用篇
上一篇介绍了git的环境安装配置,本篇对git在工作中常用的用法进行总结,已满足大部分的日常工作需求,对于其他的一些git命令用法在今后使用到时我也会更新上来,文中如有错误,欢迎大家指出来,谢谢~ 一 ...
- 工作中常用的Git操作--------(一)
今天主要记录一下平常工作当中使用的git操作: 1.git的安装这里省略: 2.git的操作指令: 在项目开发中,经常是拉去经理已经搭建好的一个项目,也就是给我们一个git地址.比如:http://g ...
- git 工作中常用命令(结合vscode学习git 命令)
作为一名前端开发,大家在工作中常常使用什么开发工具呢,我觉得我首选的是vscode,他配合git使用起来非常方便. 工作中常用三个命令: git终端常使用: git add . git commit ...
随机推荐
- POJ 2398 Toy Storage(叉积+二分)
Description Mom and dad have a problem: their child, Reza, never puts his toys away when he is finis ...
- windows下使用git和github建立远程仓库
转自(http://www.bubuko.com/infodetail-430228.html) 从昨天开始就在看git的使用,因为在Windows下很多命令行操作都比较坑爹,但是今天再走了无数弯路之 ...
- ES进阶--02
第11节深度探秘搜索技术_案例实战基于dis_max实现best fields策略进行多字段搜索 课程大纲 1.为帖子数据增加content字段 POST /forum/article/_bulk{ ...
- lnmp 1.5 mysql数据库开启远程访问
LNMP默认是禁止远程连接数据库的,但是有时候为了方便,我们想要远程,下面是开启远程的方法 sudo su # 切换为root用户模式,省的接下来操作的时候出现权限问题 mysql -u root - ...
- Visual studio 配置
解决方案 一个解决方案的文件结构: .sln 项目目录 debug release 其中,debug与release放置最终生成的dll或exe,项目目录下包含 头文 ...
- nmap简介和使用
文章链接:https://blog.csdn.net/m1585761297/article/details/80015726 参考链接:https://www.cnblogs.com/nmap/p/ ...
- 20 常用模块 hashlib hmac:加密 xml xlrd xlwt:excel读|写 configparser subprocess
hashlib模块:加密 加密: 1.有解密的加密方式 2.无解密的加密方式:碰撞检查 hashlib -- 1)不同数据加密后的结果一定不一致 -- 2)相同数据的加密结果一定是一致的 import ...
- java设计模式自我总结---适配器模式
上一篇博客说完了 java 23 中设计模式中的五种 创建性模式,由于篇幅过长,新开一贴今天开始学习结构型模式, 结构型模式包括以下七种:适配器模式.装饰模式.代理模式.外观模式.桥接模式.组合模式. ...
- js 获取两个时间戳之间相隔多少天多少小时多少分多少秒
<script> function getRemainderTime (startTime){ var s1 = new Date(startTime.replace(/-/g, &quo ...
- Git 头像修改 原
Git头像分两种: 第一种是直接在你当前托管的git服务网站中自定义上传头像 第二种通过第三方网站修改,基本上所有git服务网站都遵循这点,下面说的就是该模式 其实很简单!!! https://zh- ...