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. Android中StateListDrawable的种类(状态的种类)

    <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="ht ...

  2. webpack从单页面到多页面

    前言 从上次更完webpack从什么都不懂到入门之后,好久没有更新过文章了,可能是因为自己懒了吧.今天看了下自己的索引量少了一半o(╥﹏╥)o,发现事态严重,赶紧更新一篇23333 也是因为最近踩了一 ...

  3. webpack从什么都不懂到入门

    前言 这篇文章是自己在整理webpack相关的东西时候突发奇想,想总结自己所学知识,也希望能够帮助想学习webpack的同学们,都是入门级别的,大佬请出门右转. 本文的webpack基于webpack ...

  4. 「从零单排canal 01」 canal 10分钟入门(基于1.1.4版本)

    1.简介 canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据 订阅 和 消费.应该是阿里云DTS(Data Transfer Servi ...

  5. k8s-ephemeral和init容器

    截止到目前k8s1.18版本,k8s已经支持四种类型的container:标准容器,sidecar容器,init容器,ephemeral容器. 一:ephemeral容器 1.1.什么是ephemer ...

  6. httpd解析php的小贴士

    以前使用php的时候, 都是直接用nginx和php对接的, 极少是用apache去对接, 但是最近在用httpd测试WordPress的时候, 发现一个有趣的问题, php不用启动也能直接去解析ph ...

  7. iOS -NSOperation——高级的并发处理方法

    NSOperation是Objective-C中一种高级的并发处理方法,现在对GCD的封装;功能比GCD更强大! 两个概念      操作:      操作队列:      NSOperation多线 ...

  8. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(一)

    系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...

  9. 【loj - 3056】 「HNOI2019」多边形

    目录 description solution accepted code details description 小 R 与小 W 在玩游戏. 他们有一个边数为 \(n\) 的凸多边形,其顶点沿逆时 ...

  10. HTMLTestRunner生成html测试报告

    使用:把文件放到项目某个文件夹中,引入方式如下 import unittest import env import vendor.report.HTMLTestRunnerNew as HTMLTes ...