以Ubuntu16.04操作系统为例(其他系统类似),主要记录常用的、基本操作:

0. 安装Git 分散型版本控制系统(CVS);
  sudo apt-get install git

1. 初始化本地配置git或其他配置等(配置仓库或者全局选项,一般保存在.gitconfig中)
  git config --global user.name "your_name"
  git config --global user.email "your_email@example.com"
  git config --global color.ui auto
  git config --global core.editor vim

2. 创建git目录仓库(以git_dir为例)(git_dir下会生成一个.git的工作树保存仓库状态信息)
  mkdir git_dir
  cd git_dir
  git init

3. 如果需要使用到github,则还需要设置github的SSH Key;并将生成的id_rsa.pub公开密钥的内容添加到github的SSH Key
  ssh-keygen -t rsa -C "your_email@example.com"

4. 查看仓库状态
  git status

5. 向暂存区中添加文件
  git add some_file

6. 将暂存区文件提交到仓库的历史记录区(版本区)中
  git commit -m "some commit information strings"
  或者直接git commit,后进入编辑器编辑模式,保存提交的详细信息;若不再提交,则提交信息留空直接关闭编辑器即可。
  此外也可以将向暂存区添加文件与提交到历史记录区简化合并为: git commit -am “some commit information strings”

7. 查看仓库提交日志信息
  查看仓库的提交日志:git log
  或者查看简述信息:git log --pretty=short
  查看指定目录、文件的提交日志信息:git log some_file
  查看文件的改动信息: git log -p 或者git log -p some_file
  查看当前仓库的操作日志:git reflog
  reflog与log的区别,前者可以查看所有操作历史记录日志,而后者至多查看到当前所在hash index为止的历史记录(比如回溯到某个历史版本时的位置)

8. 查看更改前后的差别
  查看工作区与暂存区的差别: git diff
  查看工作区与历史记录区的差别: git diff HEAD
  查看暂存区与历史记录区的差别; git diff --cached 或者git diff --staged

9. 显示当前分支列表
  git branch

10. 创建并切换分支(feature_A)
  创建分支feature_A:git branch feature_A
  切换到分支feature_A:git checkout feature_A
  或者git checkout -b feature_A
  切换到主分支(默认分支): git checkout master
  一般情况下,主干分支master作为稳定发布的分支,可能有多个不同的特性分支(特性分支从主干分支master分支)作为不同主题实现,
  此外还有bug分支(也从主干分支master分支出来的)以修复BUG;此后再与master合并;
  另外主干分支可能需要Tag标签来创建版本信息,同时管理多个发布版本,拥有多个版本发布时,主干分支也有多个。

11. 分支合并
  切回到主干分支:git checkout master
  合并feature_A到主干分支: git merge --no-ff feature_A

12. 以图表形式查看分支
  git log --graph

13. 回溯分支历史版本(e411dea1c 为历史提交记录的某个指定的历史记录点下简化了的hash index值,可以使用全hash值或者简化的)
  git reset --hard e411dea1c

14. 推进分支历史版本(86f40a1 为推进历史记录版本下的某个指定历史记录点hash index值)
  同回溯分支版本一样,不过需要结合git reflog得到相应的hash index值,并结合git reset --hard 86f40a1

15. 修改上一次提交的信息内容
  git commit --amend
  此后编辑修改该编辑器中对应的内容,保存并退出即可

16. 更改压缩历史记录信息(n为某个可压缩的记录条数)或者称为变基
  git rebase -i HEAD~n

17. 添加远程仓库并推送至远程仓库
  需要先在github上创建同名仓库,如git_dir;
  添加远程仓库,将其设置为本地仓库的远程仓库(origin为标识符):git remote add origin git@github.com:your_acount/git_dir.git
  此外也可以先在github上创建仓库后,拉取下来然后添加文件修改,再提交也可,而不需要添加远程仓库操作;
  推送至master分支(当然也可以推送其他分支,如feature_A):git push -u origin master

18. 获取远程仓库(从远程仓库拉取克隆到本地)
  git clone git@github.com:your_acount/git_dir.git

19. 查看所有的分支信息(含远程仓库的)
  git branch -a

20. 获取远程仓库的某个分支(如:feature-A)
  git checkout -b feature-A origin/feature-A

21. 推送当前分支
  git push

22. 获取最新的远程仓库分支(如: feature-A)
  git pull
  另外也可以获取某个分支:git pull origin feature-A

23. 移除某个文件

  移除暂存区和工作区的某个文件:git rm some_file
  移除分支版本区的某个文件:git rm --cached some_file

24. 修改某个文件的名称
  git mv old_file_name new_file_name

一些有用的Git资料:

  Git官网:https://git-scm.com/

  Git官网的外链接:https://git-scm.com/documentation/external-links

  LearnGitBranching:http://learngitbranching.js.org/

  TryGit:https://try.github.io/

  Git教程 - 廖雪峰的官方网站:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

Git 版本控制系统的基本使用、常用操作的更多相关文章

  1. Git版本控制系统VCS

    Git版本控制系统VCS 一.版本控制系统基本情况说明 版本控制是一种记录一个或者若干个文件内容的变化,以便将来查阅特定版本修订情况的系统 1.作用 记录文件的所有历史变化 随时可回复到任何一个历史状 ...

  2. git版本控制系统小白教程(上)

    前言:本文主要介绍git版本控制系统的一些基础使用,适合小白入门,因为内容较多,会分为两部分进行分享. Git介绍 ​ Git是目前世界上最先进的分布式版本控制系统.并且它是一个开源的分布式版本控制系 ...

  3. Google Code项目代码托管网站上Git版本控制系统使用简明教程

    作为一个著名的在线项目代码托管网站,Google Code目前主要支持三种版本控制系统,分别为Git, Mercurial和 Subversion.Subversion即SVN相信大家都已经熟知了,这 ...

  4. 如何选择版本控制系统 ---为什么选择Git版本控制系统

    版本控制系统 "代码"作为软件研发的核心产物,在整个开发周期都在递增,不断合入新需求以及解决bug的新patch,这就需要有一款系统,能够存储.追踪文件的修改历史,记录多个版本的开 ...

  5. git版本控制系统小白教程(下)

    前言:本文主要介绍git版本控制系统的一些基础使用,适合小白入门,因为内容较多,会分为两部分进行分享,查看上部请点传送门. 删除文件 ​ git删除文件一般有三种情况,第一种是在工作区修改了文件,但是 ...

  6. git版本控制系统重新认识

    git 版本控制系统 目标:完全搞懂git分布式版本控制系统 搭建git版本控制系统 cvs集中化版本控制系统--集中式管理的服务器 git分布式版本控制系统--会将原始代码仓库镜像下来 新项目使用g ...

  7. git版本控制系统常见操作总结

    简介 Git是强大的版本控制系统,主要功能是针对代码.配置文件等文本进行版本控制.备份等,同时个人认为还是分发代码的一个不错的方式. 常见用法 #创建远程git仓库 [root@test88 ~]# ...

  8. 初识git版本控制系统

    当下git分布式版本控制系统越来越火,掌握git也是必须的一个技能.因此,对git做了如下学习. Git初级指南 1. 先安装git.(ps:在select cmponents处要勾选Git Bash ...

  9. Git版本控制系统之基本使用

    最早是通过接触著名的开源社区Github了解到Git的,但一直没有系统学习过.这次下定决心从头到尾系统的学一学,也将学习过程记录于此,供大家批驳.本篇文章先从以下几个方面简单了解一下Git: Git的 ...

随机推荐

  1. Github--开源代码仓库式系统(转)

    要了解Github,我们首先要知道Git,Git是管理代码的工具,写代码不是件轻松的事儿,一个人写的时候已经不轻松了,一群人写就更不轻松了,但这世界上很多事都是怎么不轻松怎么来的,大部分人都会和别人一 ...

  2. vue+webpack 引入jquery

    1 首先 cnpm install jquery:这时jquery已经安装成功,可以使用jquery,但是jquery不是全局的,需要在使用的组件中引入jquery,jquery的路径是jquery/ ...

  3. 【212】HDF更新数据&HDF创建

    HDF更新数据:对原有HDF数据进行数据更新,不破坏HDF的数据结构 pro add_data_sst ;实现将SST增加1度,再将结果更新到SST中 ;1. 获取SST索引 ;2. 通过索引获取ID ...

  4. Gym 100962G Green Day (找规律)

    题意:你用k 个生成树构成一个完全图. 析:n 个点的完全图有n(n-1)/2个边,一个生成树有n-1个边,你有k 个生成树 即边数等于 K(n-1) ,即  n(n-1)/2 == k(n-1)   ...

  5. LightOJ 1140 How Many Zeroes? (数位DP)

    题意:统计在给定区间内0的数量. 析:数位DP,dp[i][j] 表示前 i 位 有 j 个0,注意前导0. 代码如下: #pragma comment(linker, "/STACK:10 ...

  6. (链接)Tomcat设置Session的失效方式

    tomcat 设置session过期时间(四种方式):https://blog.csdn.net/liuxiao723846/article/details/50055075 tomcat里设置ses ...

  7. 探究final在java中的作用

    目录 一. final修饰变量 1. 基础: final修饰基本数据类型变量和引用数据类型变量. 2. 进阶: 被final修饰的常量在编译阶段会被放入常量池中 3. 探索: 为什么局部/匿名内部类在 ...

  8. 图像分类与KNN

    1 图像分类问题 1.1 什么是图像分类 所谓图像分类问题,就是已有固定的分类标签集合,然后对于输入的图像,从分类标签集合中找出一个分类标签,最后把分类标签分配给该输入图像.虽然看起来挺简单的,但这可 ...

  9. CSA Round #50 (Div. 2 only) Min Swaps(模拟)

    传送门 题意 给出一个排列,定义\(value为\sum_{i=1}^{n-1}abs(f[i+1]-f[i])\) \(swap(a[i],a[j])(i≠j)为一次交换\),询问最少的交换次数使得 ...

  10. bzoj 4036: [HAOI2015]按位或【min-max容斥+FWT】

    其实也不是FWT--我也不知道刷FWT专题问什么会刷出来这个东西 这是min-max容斥讲解:https://www.zybuluo.com/ysner/note/1248287 总之就是设min(s ...