版本管理工具git常用命令
一、git是什么,⽤来做什么
git是分布式版本控制系统,⽤来进⾏版本管理
⼆、git有什么特点
- git VS svn git是分布式,svn是集中式。分布式版本系统的最⼤好处之⼀是在本地⼯作完全不需要考 虑远程库的存在,也就是有没有联⽹都可以正常⼯作,当有⽹络的时候,再把本地提交推 送⼀下就完成了同步,⽽SVN在没有联⽹的时候是拒绝⼲活的!
- git有暂存区的概念,svn没有
- git 跟踪并管理的是修改,⽽⾮⽂件
三、git如何使⽤
1. 创建版本库
git init
git init 会在当前⽂件夹下⽣成⼀个.git⽂件夹,也叫做git版本库,⽤来跟踪管理版本
2. 将本地⽂件添加到git版本库
⼯作区(Working Directory)
电脑上能看到的⽬录
版本库(Repository)
⼯作区中有⼀个隐藏⽬录.git,这个不算⼯作区,⽽是Git的版本库 Git版本库⾥存了很多东⻄,其中最重要的就是暂存区(Stage),还有Git⾃动创建的master分⽀,以及 指向master的指针HEAD
git status
git add .
git commit -m "commit message"
git add 将⽂件修改添加到暂存区
git commit 提交更改,将暂存区的所有内容添加到当前分⽀
3. 添加远程库
git remote add origin git@server-name:path/repo-name.git
git remote add origin git@server-name:path/repo-name.git
必须给远程库⼀个名字,origin 远程库的名字,也可以设置为其他
将本地库的内容推送到远程
git push -u origin master
git push --set-upstream origin master
-u 将本地master分⽀和远程的master分⽀关联起来
4. 删除远程库
git remote rm origin
此处的'删除'其实是解除了本地和远程的绑定关系,并不是物理上删除了远程库
5. 从远程库克隆
git clone git@server-name:path/repo-name.git
Git⽀持多种协议,包括https/ssh,我们⼀般都是使⽤ssh,因为https除了速度慢以外,每次推送都必 须输⼊⼝令
6. 撤销修改
1)撤销⼯作区中⽂件的修改(还未添加到暂存区)
git checkout -- file
2) 撤销暂存区中⽂件的修改(还未提交到远程库)
git reset HEAD file
3)撤销远程库中⽂件的修改(版本回退)
git log
git reset --hard commit_id
git revert HEAD //撤销前⼀次commit
git reset --hard HEAD^ //回退到上⼀个版本
git reset --hard HEAD^ //回退到上⼀个版本。
git log 查看提交历史,以确定回退到哪个版本
git reflog 查看命令历史,以确定回到未来的哪个版本
4)git reset VS git revert
1. git reset 是删除指定的 commit;git revert 是⽤⼀个新的 commit 来回滚之前的 commit
2. git reset 是将 HEAD 指针向后移动了⼀下;git revert 是 HEAD 指针继续向前
7. 分⽀管理
1) 查看当前分⽀
git branch
2) 创建分⽀
git branch <name>
3) 创建+切换分⽀
git checkout -b <name>
git switch -c <name>
4) 切换分⽀
git checkout <name>
git switch <name>
5) 合并分⽀
git merge <branchName> //合并指定分⽀到当前分⽀,并⾃动创建新的commit提交
git merge --no-commit <branchName> //合并指定分⽀到当前分⽀,但不要进⾏新的提交
6) 查看分⽀合并图
git log --graph
7) 删除分⽀
git branch -d branchA //删除本地分⽀
git push origin --delete branchA //删除远程分⽀
8. 基本操作
git stash //将当前⼯作区存储起来
git stash list //查看stash list
git stash pop //恢复⼯作区
git cherry-pick <commit> //将提交的commit复制到当前分⽀,避免重复劳动
git cherry-pick <branch> //将另⼀个分⽀复制到当前分⽀,避免重复劳动
9. 更新本地代码
1)git fetch
git fetch //获取远程最新代码到本地,不会进⾏⾃动合并
2)git pull
git pull <远程主机名> <远程分⽀名>:<本地分⽀名>
git pull --rebase //也可以指定使⽤rebase模式进⾏合并
git pull 其实是 git fetch 和 git merge 的简写,获取远程最新代码到本地,并且和本地分⽀进⾏合并 操作。
10. 标签管理
标签与 commit 的关系,就像 IP 和域名的关系
1)创建标签
git tag <name>
2)以某个 commit 提交创建标签
git tag <name> commitId
3)查看创建的所有标签
git tag
4)查看标签信息
git show <tagname>
5)将创建的标签推送到远程
git push origin <tagname> //推送某个指定的 tag 到远程
git push origin --tags //推送所有的 tag 到远程
6)删除⼀个本地标签
git tag -d <tagname>
7)删除⼀个远程标签
1 git push origin refs:/tags/<tabname>
11. 修改commit message
提交过代码之后,发现一个地方改错了,你下次提交时不想保留上一次的记录;或者你上一次的commit message的描述有误,这时候你可以使用接下来的这个命令:git commit --amend
在bash里输入$ git commit --amend
直接键入:i,此时进入了输入模式,修改完成后,按下 Esc键退出编辑模式,在键入 :wq 回车退出并保存修改,完成提交
版本管理工具git常用命令相关推荐
- 版本管理工具——git常用命令使用总结
git代码库管理命令 在实际的项目开发过程中,一个工程通常分为测试分支和线上分支,测试分支通常对应测试环境,线上分支的代码对应线上环境.使用git作为代码管理工具,可以方便地进行代码的迭代管理,多人协 ...
- Git 常用命令详解(二)
2019独角兽企业重金招聘Python工程师标准>>> Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档 ...
- 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)
首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...
- Git 常用命令总结,掌握这些,轻松驾驭版本管理
Git 常用命令总结,掌握这些,轻松驾驭版本管理 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn ...
- Git 常用命令集锦
文档已储存在 GitHub,这里不再更新校正,请原谅. 远程仓库相关命令 克隆远程仓库:git clone git://github.com/jquery/jquery.git 查看远程仓库:git ...
- git常用命令,分支操作,子模块
Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) 二. Git 常用 ...
- Git 常用命令和教程
常用命令:http://hi.baidu.com/sunboy_2050/item/ffab7396672895d11a49dfcc 精简教程:http://lugir.com/git-basic.h ...
- 版本管理工具-Git
版本管理工具-Git 在我们学习编程的时候,一个项目的代码量很多,同事之间各司其职,这个时候统一项目的代码,完善项目的流程就非常重要了,像Git,Svn都是非常棒的项目管理工具,以下总结一下相关的简单 ...
- 几张图就能轻松掌握Git常用命令和原理
Git介绍 本质上,Git是一套内容寻址(content-addressable)文件系统,而和我们直接接触的Git界面,只不过是封装在其之上的一个应用层.这个关系颇有点类似于计算机网络中应用层和下属 ...
- 【转载】Git 常用命令大全
一. Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支 git branch ...
最新文章
- 深度学习中的网络表征学习的算法目标简介
- linux查找乱码文件,linux删除乱码文件或文件夹
- 初学者适用的最新Java学习路线
- Linear Programming_the simplex method in tableau format
- python冒泡排序原理_如何实现python冒泡排序算法?
- 【正点原子MP157连载】第二十五章 I2C光照接近传感器实验-摘自【正点原子】STM32MP1 M4裸机CubeIDE开发指南
- excel表格分割线一分为二_仓储匠人资料合集:仓库物流案例Excel程序、PPT、音频、视频和教材 (最后2天优惠)...
- 索尼a5100_索尼a5100像素是多少?索尼a5100分辨率是多少?
- win10系统,使用Windows照片查看器打开图片
- 阿里云的服务器居然泡在“水”里?| 数据中心参观有感
- 苹果ll是什么版本_苹果12系列手机收到货如何验货?
- 2021年HSP律所代理品牌侵权案件合集,赶紧查看避免踩坑
- 2020移动apn接入点哪个快_为什么别人的4g网总比你快?手机这个设置没开启,难怪网络...
- 解决Identify and stop the process that‘s listening on port 8080 端口问题
- windows RT开发笔记:WinRT DLL及其调用研究
- Django 之验证码实现
- [机器学习入门] 李弘毅机器学习笔记-7 (Brief Introduction of Deep Learning;深度学习简介)
- 收藏:一个5个小时左右的在线“中层领导力”培训课程
- 泺水机器人吕梁店_一处清泉一座城,泺水之源自风流
- 易中天教授讲座十句人生感悟
热门文章
- 微计算机原理及应用大纲,《微型计算机原理及应用》考试大纲
- html静态网页设计实训总结,网页设计实训心得体会范文
- vb入门教程 经验分享
- Linux文件系统格式EXT3,EXT4和XFS的区别
- (附源码)spring boot宠物医院管理系统 毕业设计 180923
- 服务器延迟和时间偏移怎么设置,服务器时间经常不对如何处理
- Java开发实战经典【Java基础】
- 互联网名词和广告名词缩写大全
- 21天学通java web 第二版pdf_21天学通JAVA WEB开发 pdf完全版_IT教程网
- Kali学习 | 权限提升:5.3 社工SET_启动