git在工作中的用法总结-使用篇
上一篇介绍了git的环境安装配置,本篇对git在工作中常用的用法进行总结,已满足大部分的日常工作需求,对于其他的一些git命令用法在今后使用到时我也会更新上来,文中如有错误,欢迎大家指出来,谢谢~
一、git本地基础用法
1、创建代码仓库 git init
2、加入所有目录到仓库 git add .
3、提交 git commit -m "first commit" 简写 git ci
4、查看git提交状态 git status 简写 git st
5、借助diff查看具体修改的地方 git diff 修改的文件路径 -号表示删除的部分 +表示添加的部分
6、撤销未提交的文件 git checkout 文件路径 简写 git co
如果文件已经add,checkout无法撤销,先取消添加
git reset HEAD 文件路径,然后再checkout就ok
7、查看记录 git log
记录太多,如果想只查看一条,通过id来查看
git log 记录id -1 -p (-1表示只查看一条,-p表示查看具体修改了什么内容)
8、分支操作
更新分支
git fetch -p
查看分支
git branch -a 查看全部分支
git branch 查看本地分支
新建分支
git branch new_branch。新建本地分支
git checkout new_branch. 切换分支
git push origin new_branch。推送到远程仓库
删除分支
git push origin --delete branch。 删除远程分支
git branch -d branch。 删除本地分支
git branch -D branch。 强行删除本地分支(如果分支代码有修改,会提示需要合并分支)
合并分支
例如将远程master分支合并到当前mis_pro_content分支
git fetch --all
git merge origin/master
git push origin mis_pro_content
9、添加忽略文件
有些文件或目录是不需要提交到git中我们可以将其添加到.gitgnore文件中,这样在提交的时候不会提交,比如node_modules依赖文件
根目录下新建.gitgnore文件,将node_modules/添加到文件中
二、远程git用法(团队合作)
1、远程下载代码到本地 git clone https://github.com/example/test.git
2、修改提交代码后需同步到远程版本库上 git push origin master (origin指定远程git版本库的地址)
master部分指定的是同步到哪个分支上
3、同步远程修改的内容到本地 ,2种方式可以操作(fetch和pull)
--fetch方式同步
将远程的同步到本地 git fetch origin/master(同步下来的内容会放在分分支origin/master上)
查看远程版本库修改哪些了内容 git diff origin/master
合并分分支origin/master到主分支上 git merge origin/master
--pull方式(将远程代码同步并且合并到本地,相当于将fetch和merge一起执行)
git pull origin master
三、git版本撤销回滚
使用场景
- 糟了,我刚把不想要的代码,commit到本地仓库中了,但是还没有做push操作!
- 彻底完了,刚线上更新的代码出现问题了,需要还原这次提交的代码!
- 刚才我发现之前的某次提交太愚蠢了,现在想要干掉它!
撤销
针对场景1,在未进行git push前的所有操作,都是在“本地仓库”中执行的。我们暂且将“本地仓库”的代码还原操作叫做“撤销”!
- 情况一,文件被修改了,但未执行git add操作
git checkout fileName
git checkout .
- 情况二,文件执行了git add操作,但想撤销对其的修改
git reset HEAD fileName 取消暂存
git checkout fileName 撤销修改
- 情况三 ,已在本地进行了多次git commit操作,现在想撤销到其中某次Commit
git reset [--hard|soft|mixed|merge|keep] [commit|HEAD]
例如:
git reset --hard HEAD^。 回退到上一次版本
git reset --hard 3628164。 回退到指定的某个版本
情况四,将test分支合并到了当前分支,但是想撤销上一次的合并
git merge --abort
回滚
针对场景2,已进行git push,即已推送到“远程仓库”中。我们将已被提交到“远程仓库”的代码还原操作叫做“回滚”
- 情况一,删除最后一次远程提交
方式1:使用revert
git revert HEAD
git push origin master
方式2:使用reset
git reset --hard HEAD^
git push origin master -f
二者区别:
revert是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在;
reset是指将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录。
- 情况二,回滚某次提交
# 找到要回滚的commitID
git log
git revert commitID
四、 本地修改暂存
git stash 本地修改暂存
git stash pop 还原本地修改
git stash list 查看暂存信息
git stash 可用来暂存当前正在进行的工作, 比如想pull 最新代码, 又不想加新commit, 或者另外一种情况,为了fix 一个紧急的bug, 先stash, 使返回到自己上一个commit, 改完bug之后再stash pop, 继续原来的工作
git stash pop 重新应用缓存的stash
当你多次使用’git stash’命令后,你的栈里将充满了未提交的代码,这时候你会对将哪个版本应用回来有些困惑,
’git stash list’ 命令可以将当前的Git栈信息打印出来,你只需要将找到对应的版本号,例如使用’git stash apply stash@{1}’就可以将你指定版本号为stash@{1}的工作取出来,当你将所有的栈都应用回来的时候,可以使用’git stash clear’来将栈清空。
五、上传本地项目到远程仓库
- 情况一,不是一个git仓库
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:fozero/vue-nuxt-ssr.git 关联远程仓库,需先在远程仓库创建一个同名仓库
git push -u origin master
- 情况二,已经是一个本地git仓库
git remote add origin git@github.com:fozero/vue-nuxt-ssr.git 关联远程仓库
git push -u origin master
注:
若新建远程仓库的时候自动创建了README文件,则在此之前先pull下来,git pull --rebase origin master,避免在push时报错
六、问题解决
1、分支合并时报错
https://stackoverflow.com/questions/2314437/resolve-conflict-delete-modify-in-git
git merge origin/feature-wuj-uinfo
CONFLICT (modify/delete): application/views/preorderg3/newshare.html deleted in HEAD and modified in origin/feature-wuj-uinfo. Version origin/feature-wuj-uinfo of application/views/preorderg3/newshare.html left in tree.
CONFLICT (modify/delete): application/views/preorderg3/newpic.html deleted in HEAD and modified in origin/feature-wuj-uinfo. Version origin/feature-wuj-uinfo of application/views/preorderg3/newpic.html left in tree.
Auto-merging application/controllers/api/Reserve.php
Automatic merge failed; fix conflicts and then commit the result.
以上错误大致是说那个文件已经被删除了,我这边还存在,通过rm将冲突文件删除解决该问题
git rm application/views/preorderg3/newshare.html
git rm application/views/preorderg3/newpic.html
七、最后
有时候可以看到别人提交的时候会显示emoj表情 ,其实我们在提交的时候也可以使用,对于不同的提交类型 ,使用不同的emoj表情,这样看起来更加的一目了然
在commit时,通过在emoj前面加‘:’,如:
git ci -m ':bug: fix click of get with no feedback'
更多的emoj表情可以查看
- https://github.com/carloscuesta/gitmoji/
- https://gitmoji.carloscuesta.me/
- https://zhuanlan.zhihu.com/p/29764863
更多的git命令用法可以查看
git在工作中的用法总结-使用篇的更多相关文章
- git在工作中的用法总结-环境安装篇
使用git有很长一段时间了 ,平时用到的时候都是直接google,经常用到的一些也记录在笔记中,但有时候笔记太多,实在是太乱了(其实是我太懒~ 哈?),找都要半天的时候还不如直接google,今天有空 ...
- vue生命周期在工作中的用法
1.首先来官方服生命=周期的解释: beforeCreate():实例在内存中被创建出来,还没有初始化好data和methods属性. create():实例已经在内存中创建,已经初始化好data和m ...
- Git 日常工作中使用的命令记录
前言 这篇文章主要是介绍我在使用Git中的有一些忘记了,但是很重要的命令. 20190424 Git 历史信息 username 和 email 更改 git config alias.chang ...
- Git在工作中对项目的操作流程
Git 的准备工作 第一步:Git初始化 第一次在电脑上使用时,应该初始化操作,以后再使用Git操作,无需初始化,直接进行Git其他操作 git config --global user.name & ...
- 【Git】工作中99%能用到的git命令
Git使用笔记 1.第一次使用github ============================================= 1)github注册账号 使用邮箱注册账号 先不要创建版本库 2 ...
- 工作中代码笔记 -- adb命令篇
1.抓log方法 (bat文件) mkdir D:\logcatset /p miaoshu=请描述操作:adb logcat -v threadtime > D:\logcat\%miaosh ...
- Git-【技术干货】工作中Git的使用实践
Git-[技术干货]工作中Git的使用实践 置顶 2019-09-17 21:02:16 web洋仔 阅读数 11444更多 分类专栏: Git 版权声明:本文为博主原创文章,遵循CC 4.0 B ...
- git工作中最常用的用法教程,不走命令行
·1.1 git的概述 Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Lin ...
- 工作中常用Git指令操作
常用Git指令总结 前阵子有几天好不顺,可谓是喝水都呛着,更何况被Git给呛着了,还不轻,哈哈.所以打算总结一下自己在工作使用到Git相关的东西以及和大家探讨使用GIt的心得体会.于是,关于Git的的 ...
随机推荐
- [置顶]ABP框架系列总目录(持续更新)
Articles & Tutorials Introduction & Step by Step With ASP.NET Core & Entity Framework Co ...
- java注解的实质,何为注解
注解就是贴标签 (1)注解的作用 1,生成文档.如常用的@param 2,跟踪代码依赖性,实现替代文件的功能.在spring中,主要是减少配置. 3,编译时进行格式检查.如常用的@override ( ...
- java中的抽象类的作用
抽象函数的作用有很多,我就举一个例子,(mars老师的例子): 打印机: 父类---Printer 子类---HBPrinter 子类----CanonPrinter 测试类----Test //定义 ...
- Django 执行单独脚本及SyntaxError缩进报错解决
有时候会碰到这样的场景,对于一些业务升级,我需要把数据库数据做些处理,同时又想以 Django 项目的环境变量执行脚本,这个时候使用 python 脚本是再适合不过的手段了. 注意:在pycharm里 ...
- Unity3D在移动平台下加载AssetBundle导致Shader效果不正确的问题
这个问题,主要还是在移动平台下开发导致的. 在编辑器里调试加载AB时会导致Shader效果不正确的原因,主要还是编辑器下加载以IOS或是ANDROID平台打包的AB它所使用的shader已经编译成对应 ...
- MATLAB2016a安装破解教程
首先,下载软件:下面是某博主的分享,可以下载软件. 链接:https://pan.baidu.com/s/1i6BgD8p 密码:17gg 第一步:安装软件 1,下载文件,得到R2016 ...
- VSCode插件开发全攻略(一)概览
文章索引 VSCode插件开发全攻略(一)概览 VSCode插件开发全攻略(二)HelloWord VSCode插件开发全攻略(三)package.json详解 VSCode插件开发全攻略(四)命令. ...
- 【设计经验】4、SERDES关键技术总结
一.SERDES介绍 随着大数据的兴起以及信息技术的快速发展,数据传输对总线带宽的要求越来越高,并行传输技术的发展受到了时序同步困难.信号偏移严重,抗干扰能力弱以及设计复杂度高等一系列问题的阻碍.与并 ...
- git学习笔记 看廖大神视频小记
1.创建一个空目录 $ mkdir gittemp $cd gittemp $pwd //x显示当前目录 2.$ git init 把这个目录变成git可以管理的仓库 多的一个隐藏的.git 目录 可 ...
- Canal学习笔记(客户端)
前言 最近公司用到Canal来做从MySQL到Tidb的数据同步,用到HA模式Canal,记录一下HA模式的工作原理. Canal的架构模式 Canal是利用binlog日志来做数据同步,canal伪 ...