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. mybatis技术总结

    一.框架概述 day1 1.什么是框架 框架是系统的可重用设计,是对J2EE底层技术的封装(JDBC,IO流,多线程,Servlet,Socket). 2.框架解决了哪些问题? 1.解决了技术整合问题 ...

  2. Django如何上传图片并对上传图片进行访问

    通过一个示例的完整演示过程,来学习django如何上传图片,以及对于media文件夹中的上传图片进行请求: 1.配置settings.py MEDIA_URL = '/media/' MEDIA_RO ...

  3. 如何在交互式环境中执行Python程序

    相信接触过Python的小伙伴们都知道运行Python脚本程序的方式有多种,目前主要的方式有:交互式环境运行.命令行窗口运行.开发工具上运行等,其中在不同的操作平台上还互不相同.今天,小编讲些Pyth ...

  4. set基本运用

    /* set集合基本用法 */ #include<iostream> #include<set> using namespace std; //set<T>a; v ...

  5. 聊一聊高并发高可用那些事 - Kafka篇

    目录 为什么需要消息队列 1.异步 :一个下单流程,你需要扣积分,扣优惠卷,发短信等,有些耗时又不需要立即处理的事,可以丢到队列里异步处理. 2.削峰 :按平常的流量,服务器刚好可以正常负载.偶尔推出 ...

  6. javaScript的执行机制-同步任务-异步任务-微任务-宏任务

    一.概念理解 1.关于javascript javascript是一门单线程语言,在最新的HTML5中提出了Web-Worker,但javascript是单线程这一核心仍未改变.所以一切javascr ...

  7. 免费 IP 代理池示例

    使用文档 import requests import re import random from concurrent.futures import ThreadPoolExecutor impor ...

  8. webstorm 快捷键 失效问题

    解决方案一:  file->Settings->Keymap->设置为Default 解决方案二:  file->Settings->IdeaVim->取消对勾 重 ...

  9. (一)Log4j使用

    原文链接:https://www.jianshu.com/p/eb4ac2571c94?tdsourcetag=s_pctim_aiomsg 1.先创建个maven项目,在我们项目的pom文件中导入l ...

  10. program files (x86)\microsoft visual studio 14.0\vc\include\xtree,如果没有找到,下标溢出了,就报错咯

    ---------------------------Microsoft Visual C++ Runtime Library---------------------------Debug Asse ...