版本管理工具(git)
Git是一个开源的分布式版本控制系统
工作区:
电脑目录中,git_test文件夹就是一个工作区。
版本库:
在进行git操作的时候,会生成一个隐藏目录.git,这是git的版本库,其中stage(或者index)为暂存区,自动创建第一个分支master,以及一个指向master的指针HEAD
基本操作:
创建版本
- 首先新建一个目录git_test
- cd git_test #进入工作区
- git init #初始化创建隐藏文件
- git add test.py #告诉git,把代码添加到暂存区 git add . #提交所有文件
- git commit -m "说明信息" #从暂存区放入仓库,后面跟上参数可以直接在命令行解释备注修改
管理修改
git status #查看当前仓库代码的修改状态
对比文件的不同修改
git diff test.py #查看修改了那些地方,+号绿色显示的就是修改或新增的内容,-号红色显示的就是去掉或被修改的内容
git diff HEAD --filename # 对比工作区和版本库某个文件。
git diff HEAD HEAD^ --filename # 对比两个版本中的文件。
撤销修改
git log #查看记录修改的日志,显示从最近到最远的提交日志
git reset --hard HEAD^ #把当前版本回退到上一个版本 等同于 git reset --hard HEAD~1
git reset --hard 621e6e #指定回到某个版本 ,版本号没必要写全,前几位就可以了,Git会自动去找
发现不想回滚错了,再回到没有回滚之前
git reflog #记录着每一次操作命令
找到版本号id就可以回滚回滚
git checkout
场景一:当改动了工作区某个文件的内容的时候,想直接丢弃工作区的修改用命令 git checkout --filename
场景二:不仅改动了工作区,而且还添加到了暂存区,想丢弃修改分为两步,第一步 git reset --hard fileid 第二步 git checkout --filename
场景三:已经提交了修改到版本库,想要撤销
撤销修改
git checkout --test.py #把test.py文件在工作区的修改全部撤销,命令中的"--"
很重要,没有"--"
,就变成了“切换到另一个分支”的命令.
删除:
把工作区的文件删除之后,工作区和版本库就不一致,使用git status命令就会告诉你那些文件删除了
从版本库中删除该文件,那就用命令git rm
删掉,并且git commit
git rm test.py
git commint -m " remove test"
文件错了,可以从版本库恢复到工作区:
git checkout --test.py #git checkout
其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
下载别人代码:
1.通过网页下载
git clone 网站链接
2.通过ssh下载,需要验证
git commit -m "change" #上传到本地仓库
git remote add origin https://github.com/..... #添加远程仓库 ,远程库的名字就是origin
,这是Git默认的叫法,也可以改成别的.
git push -u origin master #推到远程仓库 ,当前分支master
推送到远程.
之后就可以直接使用git push origin master ,例如做了某次修改后执行:
git add .
git commit -m "one change"
git push origin master
分支管理
默认有master一个分支。可以在当前master状态节点基础上创建新的分支,进行修改而不会影响master,作为独立出来的版本进行开发
git checkout -b dev #加上-b
参数表示创建并切换,相当于两条命令1. git branch dev 2. git checkout dev
git branch #列出所有的分支,当前分支前面会标一个*
号
然后,我们就可以在dev
分支上正常提交。
git add readme.txt
git commit -m "branch test"
现在,dev
分支的工作完成,我们就可以切换回master
分支
git checkout master #切换到master分支。刚才添加的内容不见了,因为那个提交是在dev
分支上,而master
分支此刻的提交点并没有变。
把dev
分支的工作成果合并到master
分支
git merge dev #合并指定分支到当前分支,此时和dev
分支的最新提交是完全一样的
合并完成后,就可以放心地删除dev
分支了
git branch -d dev
问题1.比较两个commit的区别
git diff commitid1 commitid2 > d:/diff.txt
结果文件diff.txt
中:"-"号开头的表示 commitid-
相对 commit-id1
减少了的内容。"+"号开头的表示 commitid2
相对 commit-id1
增加了的内容。
问题2 git commit --amend的作用
git commit --amend
, 可以用来修改最后一条提交的 commit message, 也可以追加新的修改。
问题3.git查看某次修改内容
git log显示历史的提交列表
git show commitId 便可以显示某次提交的修改内容
git show commitid filename 查看某次commit中具体某个文件的修改
问题4 git把分支A上的某个commit应用到分支B
首先切换到A分支
git checkout A
git log
找出要合并的commit ID :0128660c08e325d410cb845616af355c0c19c6fe
然后切换到B分支上
git checkout B
git cherry-pick 0128660c08e325d410cb845616af355c0c19c6fe
版本管理工具(git)的更多相关文章
- linux系统下使用流行的版本管理工具 Git
前几天被版本管理困扰了好久,主要是因为 没法回到之前的版本,新版本又出了问题真的很尴尬. 终于决定使用目前网上很火的版本管理工具-------Git 历史啥的就不说了,说些有用的. 我用的是oschi ...
- 版本管理工具Git(1)带你认识git
简介 本篇将带领大家认识,git.github,让大家对git有基本的认识:下面将持续更新几篇文章来介绍git,见git导航: 下一篇中将讲解git的安装及使用: Git系列导航 版本管理工具Git( ...
- 版本管理工具Git(2)git的安装及使用
下载安装git 官方下载地址:https://git-scm.com/download/win 这里以windows为例,选择正确的版本: 验证是否安装成功,右键菜单中会出现如下菜单: Git工作流程 ...
- 版本管理工具Git(一)简要介绍
版本管理工具不但可以备份而且还能记录版本,也就是同一个东西不同时期的状态同时可以跟踪追溯.版本管理工具由CVS.SVN.Git.GitHub. 最早的版本管理工具CVS,因为多人开发项目导致工作很难协 ...
- 版本管理工具Git(2)git的使用
上一篇带大家认识了Git,在本篇中将讲解Git的安装及使用: Git系列导航 版本管理工具Git(1)带你认识git 版本管理工具Git(2)git的安装及使用 版本管理工具Git(3)VS下如何使用 ...
- 版本管理工具Git(3)VS2013下如何使用git
Git系列导航 版本管理工具Git(1)带你认识git 版本管理工具Git(2)git的安装及使用 版本管理工具Git(3)VS下如何使用git VS下创建项目 vs中新建项目MyGitTest201 ...
- 版本管理工具git与svn简介
版本管理工具 版本管理工具简介 常见版本管理工具 cvs(Concurrent Versions System) vss(Visual SourceSafe) svn 常用的版本管理工具 git 流行 ...
- Studio之版本管理工具Git (图文教程)
目前业界主流的版本管理工具主要是 svn/git.svn是1种集中式的代码管理工具,而git是1种散布式的代码管理工具,广受极客的爱好.而基于git的github更是全宇宙码农的提高逼格,深究技术的必 ...
- 谈谈分布式版本管理工具Git
一.主流的版本管理工具 目前在企业中比较主流的版本管理工具有:GIT.SVN.CVS等等. 二.什么是Git? Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.是 L ...
- git版本管理工具-git的概述
什么是git Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目的一种工具 Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不 ...
随机推荐
- Java实现 蓝桥杯VIP 算法训练 筛选号码
算法训练 筛选号码 Description 有n个人围成一圈,顺序排号(编号为1到n).从第1个人开始报数(从1到3报数),凡报到3的人退出圈子.从下一个人开始继续报数,直到剩下最后一个人,游戏结束. ...
- Java实现 LeetCode 68 文本左右对齐
68. 文本左右对齐 给定一个单词数组和一个长度 maxWidth,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本. 你应该使用"贪心算法"来放置 ...
- Java实现 LeetCode 59 螺旋矩阵 II
59. 螺旋矩阵 II 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵. 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ...
- java实现第五届蓝桥杯供水设施
供水设施 X星球的居民点很多.Pear决定修建一个浩大的水利工程,以解决他管辖的N个居民点的供水问题.现在一共有N个水塔,同时也有N个居民点,居民点在北侧从1号到N号自西向东排成一排:水塔在南侧也从1 ...
- CSAPP 5 - 优化程序性能
CSAPP 5 - 优化程序性能 1. 概述 首当其冲的,还是要编写出好的算法和数据结构,优化内部结构 其次才是编写出能让编译器 易优化的,高效的可执行代码.这点在特定的机器上可能有着特定的不同的优化 ...
- 计算从1到n中,出现某位数字的次数
出现1-9中某位数字次数的算法 /** * @param input 整数n(1 ≤ n ≤ 1,000,000,000) * @return 1-9中某个数字在数列中出现的次数 */ public ...
- ASP.NET Core 3.1 WebApi部署到腾讯云CentOS 7+Docker
一.准备 首先需要有一台CentOS服务器,安装最新版Docker,配置镜像加速等,安装方法网上很多,下面是一些相关指令: yum install -y yum-utils device-mapper ...
- 小程序scroll-view实现回到顶部
一.wxml页面:catchtap阻止冒泡事件. <view class="gotop" hidden='{{!cangotop}}'catchtap="goTop ...
- 解析HOT原理
2020-06-09 19:31:01 一.疑问 前段时间:QQ群里有人对“这个表(0,4)这行数据我做了update操作,查看索引的page数据,看到索引一直指向(0,4),用ctid='(0,4) ...
- ROS 机器人技术 - 解决 ROS_INFO 不能正确输出 string 的问题!
一.输出「??」 项目调试一个节点,打印 ROS 信息时发现设置的节点名称都是问号: ROS_INFO("[%s]: camera_extrinsic_mat", kNodeNam ...