参考廖雪峰的 Git 教程:https://www.liaoxuefeng.com/wiki/896043488029600  讲解很详细,这里只做一些个人笔记;

各系统安装 Git :https://www.liaoxuefeng.com/wiki/896043488029600/896067074338496

一、基础操作:

  1. 在新建空目录下或者已有的项目目录下右键打开 Git Base 选项;
  2. 使用命令 git init  令其成为 Git 可以管理的库,会在该目录下生成一个隐藏的 .git 文件(Linux:可用 ls -ah 查看);
  3. 在该目录或子目录下编写新文件,使用   git add <file>  或者 git add . 命令将文件添加到仓库(没有其它提示则表示添加成功);
  4. 使用   git commit -m "<message>"  (内容需加引号)将文件提交到仓库,message:记录改动的信息,方便以后查看记录时知道该处做了哪些改动(可多次 add 文件后再使用 commit);

二、常用命令

版本回退

  • git log  : 查看历史记录信息,由近到远显示,输入 q 退出;(查看提交历史,以便确定要回退到哪个版本)
  • git log --pretty=oneline : 简化记录信息,只显示  commit_id (版本号);
  •  HEAD :表示当前的版本号, HEAD^ (上一个版本), HEAD^^ (上上一个版本), HEAD~100 (第100个版本);
  • git reset --hard HEAD^ : 回退上一个版本;
  • git reset --hard commit_id : 旧版本返回之前新版本(或其它版本),需写上版本号的前几位数,Git 可自动寻找后返回(版本回退后不关闭窗口时,可在之前记录找到版本号进行返回);
  • git reflog : 查看每一次命令的记录;回退旧版后关闭了窗口,重开后使用 git log 不会显示之前的新版本信息,可使用该命令查看历史命令记录,以便确定要回到未来的哪个版本。

工作区(Working Directory):相当于初始文件夹就是一个工作区,跟 .git 在同一目录但不包括 .git

版本库(Repository):在工作区中的隐藏目录但不属于工作区的 .git ,为 Git 的版本库

  • Git 的版本库:存放有stage(或者叫 index)的暂存区,还要 Git 自动创建的第一个分支 master,以及指向 master 的指针 HEAD
    • git add  把新文件或者已在暂存区但被修改的文件从工作区添加到暂存区;
    • git commit 把暂存区的所有修改的内容提交到当前分支 master,不在暂存区的不提交;

说明:readme.txt :再次被修改的文件;  LICENSE:新增的文件;

(引用廖雪峰 Git 官网的图片,侵删)

git status :查看当前状态;

 git diff :当上条命令告知有文件修改过时,可查看修改的内容;

  • git diff :工作区与暂存区的比较,即在工作区被修改但还没进行  git add 到暂存区的文件的与暂存区原有文件的内容比较;
  • git diff --cached :查看已经 git add 到暂存区但还没 commit -m 到父子的内容与分支 master 原有内容的比较;

撤销修改:

  • git checkout -- <file>  :在工作区修改文件但没使用 add 添加到暂存区时,可进行撤销;
  •  git reset HEAD <file> :已在暂存区但没 commit 提交到分支时,可将文件撤回到工作区;

(在没有推送到远程仓库时,对于已提交到版本库的文件想撤回的可进行版本回退)

删除文件: rm <file> 

  • 确定删除时,再次运行 git rm <file> 或 git add <file> ,然后运行  git commit -m "<message>" ,文件从版本库中删除;
  • 删错文件时,使用  git checkout -- <file>  可将版本库中的版本恢复到工作区,文件没添加到版本库的被删除将无法恢复;

添加远程库:

1、已有本地库的情况:

创建 GitHub 账户(不勾选 Initialize this repository with a README ),在 GitHub 右上角的 setting 里选择 SSH and GPG keys 添加 SSH Keys。在 Git 终端使用命令创建 SSH Keys

$ ssh-keygen -t rsa -C "youremail@example.com"

在用户主目录下生成 .ssh 目录,包含两个文件:私钥:id_rsa、公钥:id_rsa.pub。用笔记本打开 公钥 后将内容添加到 GitHub 的 Keys 文本中。

在本地的个人仓库下运行Git,关联远程仓库。首次关联有提示,输入 yesorigin:远程库的默认名字,后面是 GitHub 个人仓库的 ssh 链接,在仓库页面可以找到;HTTPS:速度较慢且每次连接都得输入账号密码,这里不使用)

$ git remote add origin git@github.com:Fiy02/learngit.git

使用 git push 将本地库内容推送到远程库上,即将 master 推送到远程;首次运行加 -u,后面再推送时可省略不加;

$ git push -u origin master

2、没有本地库的情况

在 GitHub 创建时勾选 Initialize this repository with a README ,会自动创建 README.md 文件。

使用 git clone 将远程库克隆到本地,会自动生成文件夹与文件(可在仓库页面的绿色按钮 clone or down 中找到个人的 ssh 链接)

1 $ git clone git@github.com:Fiy02/gitskill.git

码云:gitee

Git 全局设置:

1 git config --global user.name "Fxxx"
2 git config --global user.email "81xxxx+xxxxx@user.noreply.gitee.com"

创建 git 仓库:

mkdir mailbox_system_backend
cd mailbox_system_backend
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/lxxxx/xxxxxx.git
git push -u origin master

已有仓库?

cd existing_git_repo
git remote add origin https://gitee.com/lxxxx/xxxxxx.git
git push -u origin master

对于项目中需要忽略提交的内容,如果已存在内容,需要先使用 rm 进行删除缓存:

git rm -r __pycache__ --cached
git rm -r .idea --cached
git commit -m "remove pycache and idea cache folders."
git push origin

Git:分布式版本控制系统的更多相关文章

  1. GIT分布式版本控制系统

    Git诞生历史 我想大家还记得Linus torvalds在1991年时发布了Linux操作系统吧,从那以后Linux系统变不断发展壮大,因为Linux系统开源的特性,所以一直接受着来自全球Linux ...

  2. Git ——分布式版本控制系统

    Git ——分布式版本控制系统 本人git主页地址:https://github.com/lendoon/test.git git使用心得:初次接触git在课堂上,老师给我们提供了一个代码托管的场所, ...

  3. 手把手教你玩转Git分布式版本控制系统! (转载)

    目录 Git诞生历史 Git环境准备 Git安装部署 Git常用命令 Git基本操作 Git管理分支结构 Git管理标签 GitLab安装部署 GitHub托管服务 Git客户端工具 Git诞生历史 ...

  4. 手把手教你玩转Git分布式版本控制系统!

    目录 Git诞生历史 Git环境准备 Git安装部署 Git常用命令 Git基本操作 Git管理分支结构 Git管理标签 GitLab安装部署 GitHub托管服务 Git客户端工具 1 Git诞生历 ...

  5. g4e基础篇#2 Git分布式版本控制系统的优势

    g4e 是 Git for Enterprise Developer的简写,这个系列文章会统一使用g4e作为标识,便于大家查看和搜索. 章节目录 前言 1. 基础篇: 为什么要使用版本控制系统 Git ...

  6. GIT 分布式版本控制系统的简单使用介绍

    GIT 分布式版本控制系统的简单使用介绍 1.GIT的概念Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 与 SVN 区别:1. GIT不仅仅是个版本控制系统,它 ...

  7. 《Linux就该这么学》自学笔记_ch21_使用Git分布式版本控制系统

    <Linux就该这么学>自学笔记_ch21_使用Git分布式版本控制系统 文章主要内容: 分布式版本控制系统 使用Git服务程序 提交数据 移除数据 移动数据 历史记录 还原数据 管理标签 ...

  8. 开发效率优化之Git分布式版本控制系统(一)

    阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680本篇文章将先从Git分布式版本控制系统来阐述开发效率优化 一,企业 ...

  9. Git分布式版本控制系统(下)

    Git分布式版本控制系统(下) 链接:https://pan.baidu.com/s/1CgaEv12cwfbs5RxcNpxdAg 提取码:fytm 复制这段内容后打开百度网盘手机App,操作更方便 ...

  10. Git分布式版本控制系统(上)

    Git分布式版本控制系统(上) 链接:https://pan.baidu.com/s/1CgaEv12cwfbs5RxcNpxdAg 提取码:fytm 复制这段内容后打开百度网盘手机App,操作更方便 ...

随机推荐

  1. kubebuilder实战之二:初次体验kubebuilder

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  2. docker ubuntu中文乱码

    docker ubuntu18.04 使用cat查看中文正常,使用vim查看中文乱码. 解决此问题需要修改"/etc/profile"文件. 1.修改前查看本地使用的语言环境: l ...

  3. 07.SpringMVC之静态资源

    如何你的DispatcherServlet拦截 *.do这样的URL,就不存在访问不到静态资源的问题.如果你的DispatcherServlet拦截"/",拦截了所有的请求,同时对 ...

  4. java Date操作的相关代码

    /** * 获取现在时间,这个好用 * * @return返回长时间格式 yyyy-MM-dd HH:mm:ss */ public static Date getSqlDate() { Date s ...

  5. 学习Java的9张思维导图

    转自:https://blog.csdn.net/aitaozi11/article/details/79652943 网上搜集了java的学习思维导图,分享给大家. 01.Java程序设计(基础) ...

  6. C++字符串【string】和【char []】操作全攻略

    异想之旅:本人博客完全手敲,绝对非搬运,全网不可能有重复:本人无团队,仅为技术爱好者进行分享,所有内容不牵扯广告.本人所有文章发布平台为CSDN.博客园.简书和开源中国,后期可能会有个人博客,除此之外 ...

  7. reids rdb与aof

    rdb:时合高并发场景,容易备份恢复,会丢失部分数据 1.默认开启的方式,可以进过压缩,可以根据时间点生成快照 2.数据量大的情况下恢复快 3.bgsave一边开启fork保存文件,一边继续响应客户端 ...

  8. python·那些不值钱的经验

    时间:2018-11-22 整理:byzqy python读写文本文件 1 # -*- coding: utf-8 -*- 2 3 def read_file(file): 4 with open(f ...

  9. Centos7.4 安装MySQL 5.7.21 (通用二进制包)

    1.下载安装包 MySQL 官方下载地址:https://dev.mysql.com/downloads/mysql/ MySQL 5.7官方安装文档:https://dev.mysql.com/do ...

  10. Springboot 日志、配置文件、接口数据如何脱敏?老鸟们都是这样玩的!

    一.前言 核心隐私数据无论对于企业还是用户来说尤其重要,因此要想办法杜绝各种隐私数据的泄漏.下面陈某带大家从以下三个方面讲解一下隐私数据如何脱敏,也是日常开发中需要注意的: 配置文件数据脱敏 接口返回 ...