版本管理工具git的使用总结
在git安装好之后,还需要做注册一个github账号,作为远程仓库,之后需要做一些配置:
这里一跳而过,不多说,完成之后,我们就可以使用git了。
01
git分区
工作区:就是我们打开文件夹所能看到的内容,比如windows系统盘下面的某个文件夹,就可以看做是一个工作区。
缓存区:就是需要提交的那部分文件
版本库:就是已经提交,被纳入版本控制之列的文件
工作区有一个隐藏的目录.git,这个不算工作区,而是Git的版本库
git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支 master,以及指向 master的一个指针叫 HEAD 。
02
git的使用--基本操作
在本地创建文件夹,切换进入文件夹,开启git命令窗口,相关操作的命令如下:
(1)初始化git仓库 git init
git add 文件名 #将工作区的文件添加到缓存区中
git commit -m “注释” #将缓存区的文件内容提交到版本库中
(2)添加文件到仓库 git add 文件名
(3)提交代码到仓库 git commit -m '注释'
(4)push代码到服务器 git push origin master
(5)查看分支:git branch
(6)创建分支:git branch <分支名>
(7)切换分支:git checkout <分支名>
(8)创建+切换分支:git checkout -b <分支名>
(9)合并某分支到当前分支:git merge <分支名>
(10)删除分支:git branch -d <分支名>
(11)git log --graph命令可以看到分支合并图。
(12)查看远程库信息,使用git remote -v;
(13)本地新建的分支如果不推送到远程,其他开发者是看不到的,从本地推送分支,使用git push origin 自己的分支名,如果推送失败,先用git pull抓取远程的新提交;
(14)在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;(branch-name:本地分支名,也就是自己的分支)
(15)建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
(16)从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
(17)git clone 远程git地址 : 克隆一个远程项目
(18)git status 查看文件的状态,所谓文件状态的变化就是文件在工作区,缓存区,版本库之间不断的迁移
git status -u 查看状态
(19)git merge --no-ff -m '注释说明' 自己的分支名 将自己的分支代码合并到开发分支上
(20)让git显示颜色:git config --global color.ui true
(21)要关联一个远程库,使用命令
git remote add origin 远程仓库地址,比如:
git remote add origin https://github.com/JavaCodeMood/study_python_demo.git
关联后,使用命令 git push -u origin master第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令 git push origin master推送最新修改;
(22)查看远程服务器的相关信息:git remote -v
(23)git remote show origin(别名) 也可以查看远程服务器的相关信息
03
git的使用--快照
(1)git log 查看提交的日志
(2)gitk 以图形化的方式展现提交的日志
(3)git log -1 查看最近的一次提交
(4)git log -2 查看最近的两次提交
(5)git log --oneline 查看提交的日志,一行显示
(6)git log --oneline --graph 查看提交的日志
(7)git log -1 -p 查看最近的一次提交
(8)git reflog 显示你所使用过的每一条命令
(9)git log --graph --pretty=oneline --abbrev-commit 查看提交的日志信息
04
git的使用--版本回退
在 Git中,用HEAD
表示当前版本,也就是最新的提交commit id
(提交码)
,上一个版本就是HEAD^,上上一个版本就是HEAD^^
,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
。
(1)从当前版本回退到上一个版本:git reset --hard HEAD^
(2)根据提交码进行回退:git reset --hard d302ae7 提交码取前面7位就够了
(3)git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区
05
git的使用--版本差异
(1)使用git diff 来比较工作区与缓存区之间的差异
(2)使用git diff --cached 来比较缓存区与版本库之间的差异
(3)使用git diff HEAD 来比较工作区与版本库之间的差异
(4)git diff 文件名 #查看某个文件在工作区与缓存区之间的差异
(5)git diff HEAD -- filename命令可以查看工作区和版本库里面最新版本的区别
(6)git diff 远程开发分支名 自己的分支名:查看自己的分支与远程开发分支有什么不同
(7)git diff origin/develop develop 查看开发分支有什么不同(develop:开发分支名)
06
git的使用--历史版本
(1)使用git checkout 从缓存区中取出文件;也可以使用git checkout取出缓存区的状态
(2)使用git checkout HEAD 来取出版本库中的状态,它会做两步操作:
第一步:使用版本库中的文件来覆盖缓存区
地二步:使用版本库中的文件来覆盖工作区
(3)git checkout -- . 取出当前目录下的所有历史版本
(4)git checkout HEAD 文件名 从版本库中取出某个文件
(5)git checkout -- 文件名 丢弃工作区的修改,意思就是,把 该文件在工作区的修改全部撤销,即让这个文件回到最近一次 git commit或 git add时的状态。
07
git的使用--分支
(1)master:主分支
dev:开发分支,创建开发分支是为了保证master分支的稳定性
bug:解决bug的分支
注意:dev,bug是我自己定义的分支名,你请随意
(2)git branch dev #创建开发分支
(3)git branch #查看分支
(4)git branch -a #查看所有分支
(5)git branch -v #查看分支,并带有提交码
(6)git branch -d 分支名 #删除分支
(6)git checkout dev #切换到dev分支
(7)git checkout master #切换到master分支
(8)git checkout -b bug #创建bug分支,并切换到bug分支
将dug分支合并到master分支:
首先要切换到master分支:git checkout master
然后进行合并:git merge bug
然后查看日志:git log --oneline
合并完成之后,需要删除bug分支:git branch -d bug #删除bug分支
然后在查看分支:git checkout -v
再切换到dev分支进行开发:git checkout dev
开发完成之后,提交代码:git add 文件名 #将工作区的代码添加到缓存区
git commit -m “注释” #将缓存区的代码提交到版本库
切换回master分支合并dev代码:git checkout master
合并dev代码:git merge dev
在查看日志:git log --oneline
命令 |
作用域 |
常用情景 |
git reset |
提交层面 |
在私有分支上舍弃一些没有提交的更改 |
git reset |
文件层面 |
将文件从缓存区中移除 |
git checkout |
提交层面 |
切换分支或查看旧版本 |
git checkout |
文件层面 |
舍弃工作目录中的更改 |
git revert |
提交层面 |
在公共分支上回滚更改 |
git revert |
文件层面 |
(然而并没有) |
08
git的使用--tag标签
(1)git tag v1.0 打标签
(2)git tag 查看所有标签
(3)git show <tagname>可以查看某个标签的详细信息
(4)git tag <tagname> 用于新建一个标签,默认为HEAD
,也可以指定一个commit id
(5)git tag -d <tagname>可以删除一个本地标签;
(6)注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。
(7)如果要推送某个标签到远程,使用命令git push origin <tagname>:
(8)一次性推送全部尚未推送到远程的本地标签:git push origin --tags
(9)如果标签已经推送到远程,现在需要删除远程标签,首先从本地删除:
git tag -d <tagname>
然后,从远程删除。删除命令也是push,但是格式如下:
git push origin :refs/tags/<tagname>
09
git的使用--删除文件
(1)使用git删除某个某个文件,之后还需要进行提交,否则删除不会成功:
git rm 要删除的文件名
git commit -m "del 删除文件"
(2)误把文件删除,可以通过版本库恢复回来:git checkout -- 误删除的文件
10
git的使用--设置别名
(1)git config --global alias.st status 设置status的别名为st,git st 等价于 git status,下同
(2)git config --global alias.co checkout
(3)git config --global alias.ci commit
(4)git config --global alias.br branch
--global参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有用。
11
git的使用--将dev上未完成的工作暂存
首先要切换到dev分支上:git checkout dev
修改某个文件后,将它暂存起来:git stash / git stash save
查看状态:git status 可以看到这个工作会变得很干净
查看存储了哪些暂存工作:git stash list
恢复暂存起来的工作:git stash apply
再查看状态,你就会看到之前暂存起来的工作了。
清除暂存起来的工作:git stash clear
12
git的使用--设置忽略文件
(1)配置全局忽略的文件,这样就不用每个项目都加gitignore了:
git config --global core.excludesfile '~/.gitignore'
(2)创建.gitignore文件,用来忽略某些文件
(3)echo “文件名” >> .gitignore 将需要忽略的文件添加到忽略文件中
(4)cat .gitignore 查看忽略文件
(5)echo “目录/” >> .gitignore 忽略一个文件
(6)echo "*.txt" >> .gitignore 忽略以.txt结尾的所有文件
原文发布时间为:2018-10-6
本文作者:程序员共成长
本文来自云栖社区合作伙伴“程序员共成长”,了解相关信息可以关注“程序员共成长”。
版本管理工具git的使用总结相关推荐
- 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)
首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...
- 版本管理工具Git(2)git的使用
上一篇带大家认识了Git,在本篇中将讲解Git的安装及使用: Git系列导航 版本管理工具Git(1)带你认识git 版本管理工具Git(2)git的安装及使用 版本管理工具Git(3)VS下如何使用 ...
- 版本管理工具-Git
版本管理工具-Git 在我们学习编程的时候,一个项目的代码量很多,同事之间各司其职,这个时候统一项目的代码,完善项目的流程就非常重要了,像Git,Svn都是非常棒的项目管理工具,以下总结一下相关的简单 ...
- git管理工具 linux,linux系统下使用流行的版本管理工具 Git
前几天被版本管理困扰了好久,主要是因为 没法回到之前的版本,新版本又出了问题真的很尴尬. 终于决定使用目前网上很火的版本管理工具-------Git 历史啥的就不说了,说些有用的. 我用的是oschi ...
- 版本管理工具git和TortoiseGit
版本管理工具git git用于管理代码版本,可从官网下载.使用教程网上一搜很多,以及官网也有详细的说明.主要就是Add,push,pull等命令操作.git和远程仓库配合使用,可以保存,管理我 ...
- 版本管理工具GIT篇
版本管理工具GIT篇 一.版本管理工具干什么用的? 备份文件 作用同U盘 网盘 保存每天的成果 若是本地文件丢失 损坏 找备份 如 打游戏时候的存档 记录历史 网盘 U盘存储的是文件最新状态 ...
- 代码版本管理工具Git
Git 的发展历史 在做一个项目工程的时候,代码总是不断地更新,于是你就可能一边写代码,一边就为你的代码创建了很多的版本文件夹,分别叫"项目 0.1"."项目 0.2&q ...
- 【Linux】版本管理工具 Git
目录 一.什么是 Git 二.如何使用 Git 1.创建远程仓库 2.将远端仓库克隆到本地 3.将本地文件添加到仓库 3.1.三板斧第一招:文件添加 3.2.三板斧第二招:提交本地 3.3.三板斧第三 ...
- 实验室培训(一)—— 版本管理工具git
1.什么Git Git是分布式的版本管理工具,在实际项目管理中起到非常重要的作用. 思考1:什么是版本管理工具?为什么要使用版本管理工具? 答:了解版本控制. 2.版本控制 版本控制(Revision ...
- [转]Windows环境中使用版本管理工具 Git
Git 是一个分布式版本控制工具 Git --- The stupid content tracker(傻瓜内容跟踪器),Linus 是这样给我们介绍 Git 的. Git 是用于 Linux 内核开 ...
最新文章
- Atlassian In Action - (Atlassian成长之路)
- AsyncTask应用解析
- poj 1321 棋盘问题(dfs)
- 在word中使用notepad++实现代码的语法高亮
- maven项目添加jar包
- python生成目录树_Python生成目录树
- MySQL索引类型及创建
- 前端 CSS的选择器 伪类选择器
- 差分滤波器的实现及作用于图像提取图像的特征
- emwin emf格式视频生成环境搭建
- 考研二战日记——第二天 高数第一章第二节:数列的极限
- 网站被劫持怎么办?别着急看完这篇文章您就知道如何应对了!
- Excel高手都会的Shift快捷键7个用法,让工作效率翻倍
- linux 鼠标滚轮 太快,Linux - 微软无线鼠标滚动过快问题
- 牛客题——点击消除(go)
- “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛——H.直线【JAVA大数 | Python】
- 利用Java语言编写一个猜数字游戏(有次数限制)
- 土是独体字结构吗_发是独体字结构吗
- getdate、dateadd、datediff、datename、datepart关于日期函数的用法及理解
- 大学自学python可以考哪些证_大学生:大学期间可以考哪些证?
热门文章
- opencv cv2.copyMakeBorder()函数详解
- 坐标系转换--筛选高于RMS的强源-------ska暑期训练
- rl滤波器原理_浅谈滤波器原理以及其他基础知识
- 归纳推理测试没做完_无论顺还是剖,有几件事尽量在生娃当天做完,月子期间基本没负担...
- GTJ2018如何导出全部工程量_新清单计量规范征求意见稿第二期来啦!来看看那些让你烦恼的操作如何解决...
- 多个微服务的接口依赖如何测试_一文看懂微服务
- 计算机备份u盘,如何备份电脑系统到u盘
- html可以移动的按钮插件,纯css3按钮动画插件
- latex转为html效果好吗,latex转HTML
- subplot()函数--Matplotlib