Git是一个开源的分布式版本控制系统

工作区:

电脑目录中,git_test文件夹就是一个工作区。

版本库:

在进行git操作的时候,会生成一个隐藏目录.git,这是git的版本库,其中stage(或者index)为暂存区,自动创建第一个分支master,以及一个指向master的指针HEAD

基本操作:

创建版本

  1. 首先新建一个目录git_test
  2. cd git_test  #进入工作区
  3. git init    #初始化创建隐藏文件
  4. git add test.py  #告诉git,把代码添加到暂存区   git add .    #提交所有文件
  5. 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)的更多相关文章

  1. linux系统下使用流行的版本管理工具 Git

    前几天被版本管理困扰了好久,主要是因为 没法回到之前的版本,新版本又出了问题真的很尴尬. 终于决定使用目前网上很火的版本管理工具-------Git 历史啥的就不说了,说些有用的. 我用的是oschi ...

  2. 版本管理工具Git(1)带你认识git

    简介 本篇将带领大家认识,git.github,让大家对git有基本的认识:下面将持续更新几篇文章来介绍git,见git导航: 下一篇中将讲解git的安装及使用: Git系列导航 版本管理工具Git( ...

  3. 版本管理工具Git(2)git的安装及使用

    下载安装git 官方下载地址:https://git-scm.com/download/win 这里以windows为例,选择正确的版本: 验证是否安装成功,右键菜单中会出现如下菜单: Git工作流程 ...

  4. 版本管理工具Git(一)简要介绍

    版本管理工具不但可以备份而且还能记录版本,也就是同一个东西不同时期的状态同时可以跟踪追溯.版本管理工具由CVS.SVN.Git.GitHub. 最早的版本管理工具CVS,因为多人开发项目导致工作很难协 ...

  5. 版本管理工具Git(2)git的使用

    上一篇带大家认识了Git,在本篇中将讲解Git的安装及使用: Git系列导航 版本管理工具Git(1)带你认识git 版本管理工具Git(2)git的安装及使用 版本管理工具Git(3)VS下如何使用 ...

  6. 版本管理工具Git(3)VS2013下如何使用git

    Git系列导航 版本管理工具Git(1)带你认识git 版本管理工具Git(2)git的安装及使用 版本管理工具Git(3)VS下如何使用git VS下创建项目 vs中新建项目MyGitTest201 ...

  7. 版本管理工具git与svn简介

    版本管理工具 版本管理工具简介 常见版本管理工具 cvs(Concurrent Versions System) vss(Visual SourceSafe) svn 常用的版本管理工具 git 流行 ...

  8. Studio之版本管理工具Git (图文教程)

    目前业界主流的版本管理工具主要是 svn/git.svn是1种集中式的代码管理工具,而git是1种散布式的代码管理工具,广受极客的爱好.而基于git的github更是全宇宙码农的提高逼格,深究技术的必 ...

  9. 谈谈分布式版本管理工具Git

    一.主流的版本管理工具 目前在企业中比较主流的版本管理工具有:GIT.SVN.CVS等等. 二.什么是Git? Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.是 L ...

  10. git版本管理工具-git的概述

    什么是git Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目的一种工具 Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不 ...

随机推荐

  1. Java实现 蓝桥杯VIP 算法训练 筛选号码

    算法训练 筛选号码 Description 有n个人围成一圈,顺序排号(编号为1到n).从第1个人开始报数(从1到3报数),凡报到3的人退出圈子.从下一个人开始继续报数,直到剩下最后一个人,游戏结束. ...

  2. Java实现 LeetCode 68 文本左右对齐

    68. 文本左右对齐 给定一个单词数组和一个长度 maxWidth,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本. 你应该使用"贪心算法"来放置 ...

  3. Java实现 LeetCode 59 螺旋矩阵 II

    59. 螺旋矩阵 II 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵. 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ...

  4. java实现第五届蓝桥杯供水设施

    供水设施 X星球的居民点很多.Pear决定修建一个浩大的水利工程,以解决他管辖的N个居民点的供水问题.现在一共有N个水塔,同时也有N个居民点,居民点在北侧从1号到N号自西向东排成一排:水塔在南侧也从1 ...

  5. CSAPP 5 - 优化程序性能

    CSAPP 5 - 优化程序性能 1. 概述 首当其冲的,还是要编写出好的算法和数据结构,优化内部结构 其次才是编写出能让编译器 易优化的,高效的可执行代码.这点在特定的机器上可能有着特定的不同的优化 ...

  6. 计算从1到n中,出现某位数字的次数

    出现1-9中某位数字次数的算法 /** * @param input 整数n(1 ≤ n ≤ 1,000,000,000) * @return 1-9中某个数字在数列中出现的次数 */ public ...

  7. ASP.NET Core 3.1 WebApi部署到腾讯云CentOS 7+Docker

    一.准备 首先需要有一台CentOS服务器,安装最新版Docker,配置镜像加速等,安装方法网上很多,下面是一些相关指令: yum install -y yum-utils device-mapper ...

  8. 小程序scroll-view实现回到顶部

    一.wxml页面:catchtap阻止冒泡事件. <view class="gotop" hidden='{{!cangotop}}'catchtap="goTop ...

  9. 解析HOT原理

    2020-06-09 19:31:01 一.疑问 前段时间:QQ群里有人对“这个表(0,4)这行数据我做了update操作,查看索引的page数据,看到索引一直指向(0,4),用ctid='(0,4) ...

  10. ROS 机器人技术 - 解决 ROS_INFO 不能正确输出 string 的问题!

    一.输出「??」 项目调试一个节点,打印 ROS 信息时发现设置的节点名称都是问号: ROS_INFO("[%s]: camera_extrinsic_mat", kNodeNam ...