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 客户端连接报错Illegal mix of collations for operation
服务端用的是utf-8,客户端工具打开表和视图是会报Illegal mix of collations for operation错误,经排查,可以采用以下语句解决 SET character_set ...
- Django目录
app和ORM的操作与介绍 框架简介 中间件 form介绍 Django自带用户认证 cookie和session 模版 模板2 ORM操作 所有ORM操作(第二版) Django请求生命周期 Dja ...
- C#+EntityFramework编程方式详细之Model First
Model First Model First模式即“模型优先”,这里的模型指的是“ADO.NET Entity Framework Data Model”,此时你的应用并没有设计相关数据库,在VS中 ...
- 初识Vue
Vue.js介绍 Vue是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合.另 ...
- CSS之三个模型 盒子模型 轮廓模型 内外边距
盒子模型 最终元素的总宽度计算公式是这样的: 总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距 元素的总高度最终计算公式是这样的: 总元素的高度=高度+顶部填充+底部填充+上边框+下 ...
- java实验-3
实验内容 1.XP基础 2.XP核心实践 3.相关工具 实验内容 一.在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己 ...
- Java基础知识及学习规划【图】
结构图:
- 关于python3.6上传文件时报错:HTTPSConnectionPool(host='***.org', port=443): Max retries exceeded with url: /post (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAIL解决办法
第一个报错: 最近在练习post请求中上传文件时遇到了一个奇葩事情,两台电脑上写了一模一样的代码,一个运行正常,另一个一片红. 最后了解了一下原因以及解决办法.先记录下关键代码: files = {& ...
- window.open 打开全屏窗口
window.open新打开页面为全屏状态,各个浏览器情况不一致. window.open 弹出新窗口的命令: 'page.html' 弹出窗口的文件名: 'newwindow ...
- 关于WQS二分算法以及其一个细节证明
应用分析 它的作用就是题目给了一个选物品的限制条件,要求刚好选$m$个,让你最大化(最小化)权值, 然后其特点就是当选的物品越多的时候权值越大(越小). 算法分析 我们先不考虑物品限制条件, 假定我们 ...