git 的基础

1.在现有的目录中初始化仓库

[Derek@git]$ git init

2.把一个文件放到Git仓库中

  第一步, 用命令git add ,把文件添加到仓库

[Derek@git]$ git add readme.txt

  第二步, 用命令git commit , 把文件提交到仓库

[Derek@git]$ git commit -m "wrote a readme file"
[master (root-commit) eaadf4e] wrote a readme file
 1 file changed, 2 insertions(+)
 create mode 100644 readme.txt

  -m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。

  git commit命令执行成功后会告诉你,1 file changed:1个文件被改动(我们新添加的readme.txt文件);2 insertions:插入了两行内容(readme.txt有两行内容)。

3.记录每次更新到仓库

  继续修改readme.txt文件,改成如下内容:

Git is a distributed version control system.
Git is free software.

  运行git status 查看结果:

[Derek@git]$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   readme.txt

no changes added to commit (use "git add" and/or "git commit -a")

4.查看已暂存和未暂存的修改

[Derek@git]$ git diff
diff --git a/README.md b/README.md
index e69de29..a34691f 100644
--- a/README.md
+++ b/README.md
@@ -0,0 +1 @@
+this is new line

  若要查看已暂存的将要添加到下次提交里的内容,可以用 git diff --cached 命令。

[Derek@git]$ git diff  --staged
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e69de29

5.提交更新

   每次准备提交前,先用 git status 看下,是不是都已暂存起来了, 然后再运行提交命令 git commit

[Derek@git]$ git commit

  -m 选项,将提交信息与命令放在同一行

[Derek@git]$ git commit -m ‘create‘
[master (root-commit) 88a09aa] create
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README.md

6.跳过使用暂存区域

  给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交

[Derek@git]git commit -a -m  ‘update‘
[master 86d801b] update
 1 file changed, 1 insertion(+)

7.查看提交历史

[Derek@git]$ git log
commit 86d801bbaa4cc560acc7c8f79a65cac85201f170 (HEAD -> master)
Author: wangfeng7399 <wangfeng17399@163.com>
Date:   Tue Feb 19 18:48:48 2019 +0800

    update

commit 88a09aa009af29e9a784d6dbb68589f70f1c51be
Author: wangfeng7399 <wangfeng17399@163.com>
Date:   Tue Feb 19 18:48:04 2019 +0800

    create

  -p 用来显示每次提交的内容差异, -2 来显示最近两次提交

[Derek@git]git log -p -2
commit 86d801bbaa4cc560acc7c8f79a65cac85201f170 (HEAD -> master)
Author: wangfeng7399 <wangfeng17399@163.com>
Date:   Tue Feb 19 18:48:48 2019 +0800

    update

diff --git a/README.md b/README.md
index e69de29..a34691f 100644
--- a/README.md
+++ b/README.md
@@ -0,0 +1 @@
+this is new line

commit 88a09aa009af29e9a784d6dbb68589f70f1c51be
Author: wangfeng7399 <wangfeng17399@163.com>
Date:   Tue Feb 19 18:48:04 2019 +0800

    create

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e69de29

  --pretty  指定使用不同于默认格式的方式展示提交历史, 用 oneline 将每个提交放在一行显示,查看的提交数很大时非常有用

[Derek@git]$ git log --pretty=oneline
ca82a6dff817ec66f44342007202690a93763949 changed the version number
085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7 removed unnecessary test
a11bef06a3f659402fe7563abf99ad00de2209e6 first commit

git log --pretty=format 常用的选项 ,列出了常用的格式占位符写法及其代表的意义。

选项 说明
%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用 --date= 选项定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期,按多久以前的方式显示
%s 提交说明

git log 的常用选项

选项 说明
-p 按补丁格式显示每个更新之间的差异。
--stat 显示每次更新的文件修改统计信息。
--shortstat 只显示 --stat 中最后的行数修改添加移除统计。
--name-only 仅在提交信息后显示已修改的文件清单。
--name-status 显示新增、修改、删除的文件清单。
--abbrev-commit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。
--relative-date 使用较短的相对时间显示(比如,“2 weeks ago”)。
--graph 显示 ASCII 图形表示的分支合并历史。
--pretty 使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。

在 限制 git log 输出的选项 中列出了常用的选项

选项 说明
-(n) 仅显示最近的 n 条提交
--since--after 仅显示指定时间之后的提交。
--until--before 仅显示指定时间之前的提交。
--author 仅显示指定作者相关的提交。
--committer 仅显示指定提交者相关的提交。
--grep 仅显示含指定关键字的提交
-S 仅显示添加或移除了某个关键字的提交

8.取消暂存的文件

[Derek@git]git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    modified:   README.md
[Derek@git]git reset HEAD README.md
Unstaged changes after reset:
M   README.md
[Derek@git]$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   README.md

no changes added to commit (use "git add" and/or "git commit -a")

注意:虽然在调用时加上 --hard 选项可以令 git reset 成为一个危险的命令,可能导致工作目录中所有当前进度丢失!但本例中工作目录内的文件并不会被修改。 不加选项地调用 git reset 并不危险 它只会修改暂存区域。

9.撤销对文件的修改

$ git checkout  -- README.md
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    renamed:    README.md -> README

注意:git checkout -- [file] 是一个危险的命令,这很重要。 你对那个文件做的任何修改都会消失 - 你只是拷贝了另一个文件来覆盖它。 除非你确实清楚不想要那个文件了,否则不要使用这个命令。

命令的总结:

git init   初始化

git status  查看状态

git add  添加到缓存区

git commit 提交到版本库

git log  查看提交记录,当前位置往前的提交记录

git reflog 查看所有的提交记录

git reset HEAD  从缓存区把文件拉取到工作区

git reset --hard  回滚到某一个版本,可以写长的值,也可以写短的值

git diff 对比的是工作区跟缓存区之间的差别

git diff --cached 对比缓存区跟版本库之间的差别

git checkout -- filename 取消修改的内容

git stash  将当前开发的内容放在"某个地方"

git stash pop 恢复当前的工作目录,并删除

git stash list  查看stash列表

git stash drop 删除stash

git stash apply 恢复当前的工作目录,不删除stash

参考:https://blog.51cto.com/wangfeng7399/2352524

原文地址:https://www.cnblogs.com/chenxi67/p/10419696.html

时间: 2024-10-21 12:11:47

git 的基础的相关文章

分布式版本管理器Git的基础操作指南

对于任何一个文件,在Git内都只有3种状态:已提交(committed),已修改(modified)和已暂存(staged).已提交表示该文件已经被安全地波啊存在本地数据库中了,已修改表示修改了某个文件,但还没有提交保存,已暂存表示把已修改的文件放在下次提交时要保存的清单中. 一.基本的Git工作流程如下所示: 在工作目录中修改某些文件 对这些修改了的文件做快照,并保存到暂存区域 提交更新,将保存在暂存区域的文件快照转储到git目录中 二.Git安装 yum install curl-devel

Mac下Git的基础操作

目前最火的版本控制软件是Git了吧,今天简单梳理一下Mac下Git的基础操作~~ 一.什么是Git Git是一个分布式代码管理工具,用于敏捷的处理或大或小的项目,类似的工具还有svn. 基于Git的快速的.免费的.稳定的在线代码托管平台有github,还有一些国内的,coding.csdn代码托管平台.京东代码托管平台等等. 二.Git的基本使用 1.注册一个git账号 咱们以coding代码托管平台为例来简单介绍 A.登陆coding网站https://coding.net/,注册coding

Git使用基础篇

Git使用基础篇 Git是一个分布式的版本控制工具,本篇文章从介绍Git开始,重点在于介绍Git的基本命令和使用技巧,让你尝试使用Git的同时,体验到原来一个版 本控制工具可以对开发产生如此之多的影响,文章分为两部分,第一部分介绍Git的一些常用命令,其中穿插介绍Git的基本概念和原理,第二篇重点介绍 Git的使用技巧,最后会在Git Hub上创建一个开源项目开启你的Git实战之旅 1.Git是什么 Git在Wikipedia上的定义:它是一个免费的.分布式的版本控制工具,或是一个强调了速度快的

分布式版本管理器Git的基础操作与配置指南&lt;二&gt;

一.Git分支介绍与创建 Git中的分支,其实本质上仅仅是个指向commit对象的可变指针.Git回使用master作为分支的默认名 字,在若干次提交后,你其实已经有了一个指向最后一次提交对象的master分支,它在每次提交的时候 都会自动向前移动. 1.Git分支的创建,切换和删除 git branch 不带参数,它会给出当前所有分支的清单,*表示当前所在的分支 git branch -v 附带显示各个分支最后一次commit信息 git branch testing 创建一个tesing分支

git 操作基础

1.git简介 2.git与svn比较 3.git工作流程 4.git分支管理 5.git使用 6.基础命令 7.过滤文件 8.创建远程gitee仓库 9.用本地仓库首次初始化远程仓库 10.remote源操作 11.多分支开发 一.git简介 什么是git:版本控制器 - 控制的对象是开发的项目代码 代码的开发时间轴:需求1 > 版本库1 > 需求2 > 版本库2 > 版本库1 > 版本库2 二.git与svn比较 svn的工作流程 git的工作流程 三.git工作流程(重

Git原理基础(版本控制机制)

Git 基础 那么,简单地说,Git 究竟是怎样的一个系统呢? 请注意接下来的内容非常重要,若你理解了 Git 的思想和基本工作原理,用起来就会知其所以然,游刃有余. 在开始学习 Git 的时候,请努力分清你对其它版本管理系统的已有认识,如 Subversion 和 Perforce 等:这么做能帮助你使用工具时避免发生混淆. Git 在保存和对待各种信息的时候与其它版本控制系统有很大差异,尽管操作起来的命令形式非常相近,理解这些差异将有助于防止你使用中的困惑. 直接记录快照,而非差异比较 Gi

git操作基础 删除文件夹

git中删除文件夹的方法简单整理如下: 命令行 项番 命令 No.1 git rm -rf 文件夹名 No.2 git add -A No.3 git commit -m "delete dir" No.4 git push 执行例 [[email protected] src]# git rm -rf static rm 'src/static/bootstrap/css/bootstrap-theme.css' rm 'src/static/bootstrap/css/bootst

git零基础深入浅出 之 [git初探]

出于总结和推广git的目的,(实在太好用).决定安利一篇git的博文. ps. 由于篇幅有限.本文只是对git和部分命令做一个简单介绍,要专门学习指令请移的同学请直接滑到文末戳链接. Git是什么? 如果你能看到这篇文章,我相信你一定知道 Git是目前世界上最先进的分布式版本控制系统(没有之一). 不明白没关系:有同学问那什么是版本控制系统? coder们都有过这样的体验, 例如我要写一个大数运算(并不简短的程序实例),包含了 加减乘除 几种方法. 突然发现: 除了 减法 有bug,其他的算数都

git的基础知识

git init命令将当前目录创建为版本仓库,该命令运行之后会在当前目录下生产一个.git的目录 git add xxx为仓库添加文件 git commit -m  "xxxx"  将文件提交到版本库 第一次提交的时候可能需要配置邮箱和姓名 git config --global user.email  "[email protected]" git config --global user.name "你的名字" 使用git status来查看

Git使用基础

一.如何使用命令将本地项目上传到git 进入项目文件夹,通过 git init 命令把这个项目变成git可以管理的仓库 把文件店家到版本库中,使用 git add .添加到暂存区去 用命令 git commint -m '说明' 把文件提交到仓库 关联到远程库 git remote add origin 你的远程库的地址 获取远程库与本地同步(如果远程库不为空必须做这一步) git pull --rebase origin master 把本地库的内容推送到远程,实际上是把当前分支master推