git温习
git init:将文件变成git仓库
ls -ah:查看隐藏目录
git add 文件1 文件2 。。。:将文件添加到缓存区
git commit -m ‘提交说明’:提交到本地仓库一次 并说明这次更改的说明
git status:查看当前仓库状态,有没有在缓存区没提交的文件,或则文件在缓存区还未提交到本地仓库,等等
git diff 文件:如果你往了你修改了这个文件的什么内容,可以用这个命令查看这一次都做了哪些修改
git log:查看提交记录(commit记录)
git log --pretty=oneline:如果看git log查出来的提交记录眼花缭乱,就加上后面的这个参数,加上后只显示每次提交的说明
版本回退
git reset --hard HEAD^:版本回退到上一个版本
git reset --hard HEAD^^:版本回退到上上个版本
git reset --hard 版本号的前几位:版本回退后,又想返回到回退前的版本,记住版本号不用输完整,git自己会找(版本号:commit_id)
git reflog:查看每一次提交的版本号,以防你想回退到回退之前的版本时,不知道版本号
cat 文件:查看文件的内容
git diff HEAD --文件:查看工作区与版本库里最新版本的差别
git checkout --文件:可以丢掉工作区的修改,或则是丢掉最近一次git add 或 git commit的状态(其实是用版本库中的代码替换了工作区的内容)
git reset HEAD 文件:将把暂存区的修改回退到工作区(工作区也就是未暂存之前,暂存区是.git隐形的文件)
rm 文件:删除文件
git rm 文件:删除版本库的文件(本地版本库),一般后面要git commit提交一下并说明是删除了文件
本地仓库已经存在时跟新创建的远程仓库(github)关联
git remote add origin github地址:将本地仓库与远程仓库关联起来
git push -u origin master:将本地master分支推送到远程仓库(第一次推送到远程要加 -u 参数)
git push origin master:第一次推送到远程后,以后只要本地有提交,就可以用这个命令推送到远程了
最好是先创建远程仓库,将远程仓库克隆到本地
记得创建远程仓库时,让它自动生成readme文件
创建一个文件并 git init一下
git clone 远程仓库地址:将远程仓库克隆到本地
分支管理
git checkout -b 分支:创建分支并切换到此分支(相当于以下两个命令)
git branch 分支:创建一个分支
git checkout 分支:切换到此分支
git branch:列出所有分支,当前分支前面会有个*号
git merge 分支:将此分支合并到当前分支
git branch -d 分支:删除指定分支(不能是当前分支)
git push origin --delete 分支:删除远程分支
git log:查看一下提交列表(按q键退出)
git log --graph --pretty=oneline --abbrev-commit:查看分支合并的情况
git merge --no-ff -m "merge with no-ff" 分支:不用git的Fast forward模式,将分支合并到当前分支(因为fast forward模式,删除分支后,会丢掉此分支的信息)
git stash:将正在开发的代码存储起来,(当我们发现一个bug,需要另外创建一个分支来修复bug时,但这时候的任务不能完成也不能提交,此时就用到git stash,用过这个命令后,git status是正常的,之后就可以创建新分支去修改bug了,当修改完bug,再回到原来分支继续自己的任务)。
git stash list:查看工作区用git stash存起来的内容列表
把git stash存在工作区的内容恢复:
1、git stash apply:将在工作区存储的代码恢复(但stash内容并不删除)
1.1、git stash apply stash@{0}:恢复指定的stash内容
2、git stash pop:删除stash存在工作区的内容
也可以通过一个命令完成上述两件事(恢复工作区的内容,并删除stash)
git stash pop:恢复用stash存在工作区的内容,并删除stash
git branch -D 分支:强行删除分支,(若新建的分支,还未合并到其它分支,用git branch -d 分支 是删除不了的,必须换成大写D强行删除)
git remote:查看远程仓库的信息
git remote -v:用来显示更详细的远程仓库的信息
推送到远程
git push origin master:把本地master分支推送到对应远程的master分支
git push origin dev:把本地当前分支 推送到对应远程的dev分支
抓取分支
场景:小伙伴,从远程克隆了你的项目,但这位小伙伴默认只能看到master分支,此时他在本地创建了与全程对应的dev分支,并且在上面添加了代码,并且推送到远程了,而自己此时dev分支也想推送到远程,但我们git push origin dev时,会报错提示我们需要用git push将远程的dev拉取下来,当我们去拉取时,又提示我没有和远程dev分支简历关系。(因为此时远程的dev分支是小伙伴推上去的,当然和自己没关系),此时我们用git branch --set-upstream-to=origin/dev dev命令,和远程的dev分支建立链接。然后再git pull 拉取远程dev代码,成功拉取后提示有冲突(必须的),然后手动解决冲突,在推送到远程
git branch --set-upsteam-to=origin/dev dev:和远程的dev分支建立链接
git pull:拉取远程代码
git checkout -b 分支 origin/分支:在本地创建与远程分支对应的分支(git checkout -b dev origin/dev)
变基操作:
当有人在我们之前将代码推送到远程时,我们也打算将代码推送到远程,此时我们git push origin master(吐送到远程会失败),原因就是别人先一步把代码推到远程了,然后我们需要git pull拉取一下远程,再推送(有可能有冲突,解决就行)。但是我们推送上去后,git log 查看提交记录,发现提交记录会分叉,很乱。此时我们就可以用到git rebase命令了,记住是发现有人在我们之前把代码推送到远程时,马上执行git rebase命令,再拉取,再推送,提交历史会变成一条还直线,就不会那么乱了
git rebase:将提交历史变成一条直线,实际是调了一下两人的提交顺序。
标签管理:
切换到想打标签的分支,如git checkout master
git tag v1.0:给master分支打个V1.0标签
git tag:查看当前分支的标签
若之前提交时忘了打标签,可以git log --pretty=oneline --abbrev-commit查看一下提交历史,主要是要版本号(commit.id)
git tag v0.9 f52c633:给f52c6633的这次提交打个v.09的标签
git show v0.9:查看标签信息,也就是查看此次提交的信息
git tag -a v0.1 -m "标签说明":还可以创建带有说明的标签,用-a
指定标签名,-m
指定说明文字:
标签操作;
如果标签打错了,也可以删除:
git tag -d v1.0:因为创建的标签都只存储在本地,不会自动推送到远程,所以打错标签可以在本地安全的删除
git push origin v1.0:将标签推送到远程
git push origin --tags:一次性推送尚未推送到远程的标签到远程
如果标签已经推送到远程,想删除,则先在本地删除,在删除远程的标签
git tag -d v0.9:删除本地的v0.9标签
git push origin :refs/tags/v0.9:将远程的v0.9标签删除
也可以让本地仓库关联到码云上,请查看缪雪峰老师的git教程,很简单
当你在本地关联的远程库时github时,此时想关联码云,需要先接触github的关联,在创建gitee的关联
当然可以同时关联码云和github,只不过推送远程时,不是origin了,
码云就是 gitee
github就是github
还可以自定义git
如设置自定义命令
设置颜色配置
自己搭建一个git服务器,团队合作不用给git掏钱了。。。
请百度,缪雪峰的官方网站
git remote add origin 码云的仓库地址:将本地仓库与远程的码云长裤建立连接
补充,git提交,报错说账号密码不正确而无法上传远程仓库时,大多是凭据问题,搜出 凭据管理(windows),更改一下用户名和密码即可
补充:
今天在网课上从开头 创建开了一个项目,然后上传到一个在远程新建的长仓库上面,过程如下
1、项目创建好之后,执行git init 初始化本地仓库 (会生成.git文件)
2、git add . (点)将本地的所有文件添加到缓存区
3、git commit -m "提交说明"
4、在码云上新创建一个仓库,会生成 远程仓库路径
5、git remote add origin 远程仓库地址 (连接上远程仓库)
6、git push -u origin master (初次上传远程需要带上-u参数,之后会让输入码云的账号密码,然后就会提交到远程仓库了)
git clean -df 强制删除不再git管理下的文件
git温习的更多相关文章
- Git 教程 -- 基于自己学习记录
Git 教程 -- 基于自己学习记录 1. 引言 由于学校布置了一项熟悉 git 和 svn 操作的实验,所以自己重新温习了下 git,记录过程在这. 2. 注册登录 GitHub. 3. 选择一个仓 ...
- 关于Git学习推荐
Git学习除了推荐官方网站:https://git-scm.com/之外, 我个人比较推荐初学者或者被动使用者可以学习参考廖雪峰的这个教程:https://www.liaoxuefeng.com/wi ...
- Git常用操作指南
目录 前言 Git简介 安装之后第一步 创建版本库 本地仓库 远程仓库 版本控制 工作区和暂存区 版本回退 撤销修改 删除文件 分支管理 创建与合并分支 解决冲突 分支管理策略 状态存储 多人协作 R ...
- Git 学习 day01
Tips:最近的工作中需要用到版本控制工具git,所以准备开一个分类用来记录下自己学到的知识,以备以后温习 在安装完git之后需要设置用户名和用户邮箱: $ git config --global u ...
- Git 子模块 - submodule
有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目. 也许是第三方库,或者你 独立开发的,用于多个父项目的库. 现在问题来了:你想要把它们当做两个独立的项目,同时又想在 一个项目中使用另 ...
- 前端框架 EasyUI (0) 重新温习(序言)
几年前,参与过一个项目.那算是一个小型的信息管理系统,BS 结构的,前端用的是基于 jQuery 的 EasyUI 框架. 我进 Team 的时候,项目已经进入开发阶段半个多月了.听说整个项目的框架是 ...
- Git 在团队中的最佳实践--如何正确使用Git Flow
我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用. Git的优点 Git的优点很多,但是这里只列出我认为 ...
- Git与Repo入门
版本控制 版本控制是什么已不用在说了,就是记录我们对文件.目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作... 一.原始版本控制 最原始的版本控制是纯手工的版本控制:修改文 ...
- Git Bash的一些命令和配置
查看git版本号: git --version 如果是第一次使用Git,你需要设置署名和邮箱: $ git config --global user.name "用户名" $ gi ...
随机推荐
- mysql收集统计信息
一.手动 执行Analyze table innodb和myisam存储引擎都可以通过执行“Analyze table tablename”来收集表的统计信息,除非执行计划不准确,否则不要轻易执行该 ...
- ng2-translate 国际化中 配置文件添加变量
1. <li> {{ 'Withdrawmoney.tipsP1' | translate:{value:assets} }} </li> 2. "Withdrawm ...
- RGB与HSB之间转换
先来了解一些概念: 1.RGB是一种加色模型,就是将不同比例的Red/Green/Blue混合在一起得到新颜色.通常RGB颜色模型表示为: 2.HSB(HSV) 通过色相/饱和度/亮度三要素来表达颜色 ...
- 利用Graphviz绘制逻辑关系依赖图
说明:在很多情况下,需要将复杂且有些规律的代码整理成逻辑片段,这个时候就需要画图,很多时候图比代码更加直观 Graphviz是一个比较好的绘图工具,可以通过简单的代码绘制出复杂的逻辑图,且其代码就像平 ...
- Softmax 回归 vs. k 个二元分类器
如果你在开发一个音乐分类的应用,需要对k种类型的音乐进行识别,那么是选择使用 softmax 分类器呢,还是使用 logistic 回归算法建立 k 个独立的二元分类器呢? 这一选择取决于你的类别之间 ...
- tensorflow 传入值-【老鱼学tensorflow】
上个文章中讲述了tensorflow中如何定义变量以及如何读取变量的方式,本节主要讲述关于传入值. 变量主要用于在tensorflow系统中经常会被改变的值,而对于传入值,它只是当tensorflow ...
- springboot的jar包
公用jar包放在api层.有些却包的不用增加pom文件.将已存在的jar包加入即可
- Visual GC提示"不受此JVM支持“解决方案(配置jstatd)
Visual GC提示"不受此JVM支持“,如果想使用这个插件,就需要配置jstatd连接方式,下面来看jstatd的配置: 1.配置安全策略文件路径$JAVA_HOME/jre/lib/s ...
- css 制作翻页布局
代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- gulp前端构建化工具,帮你搞定不同浏览器的兼容性写法问题
.相信所有的前端攻城狮.听到浏览器兼容性问题都深有体会. 浏览器兼容性问题,无非就是因为浏览器内核不同,浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况.还有就是根据浏览器的版本不同,所兼 ...