Git 入门 ---- Git 常用命令

本文作为  Git 入门 ---- Git 与 SVN 区别 的续篇,继续介绍 Git 的入门知识

四. Git 安装

OS X 版本: Mac 一般自带不需要安装

Windos 版本: https://git-for-windows.github.io/

Linux 版本: Linux 一般也是自带无需安装

五. 创建新仓库

创建新文件夹,cd 到文件夹,执行命令: git init  用来创建新 git 仓库

六. 提交文件进仓库

在新建好 git 仓库的文件夹里加入 readme.txt 文件

1. 使用 git add readme.txt 把文件添加到仓库,执行后没有任何提示,说明添加成功

2. 使用 git commit -m "提交内容的注释" 将文件真正提交到仓库

为什么提交分为 add 和 commit 呢?

那是 git 架构所决定的,你的本地仓库由 git 维护的三棵“树”组成。第一个是你的 工作目录,它持有实际文件;第二个是 暂存区(Index 又称 Stage),它像个缓存区域,临时保存你的改动;最后是 HEAD,它指向你最后一次提交的结果。所以 add 是提交到 Index 的暂存区, commit 是提交到 Head,但是还没到远端仓库

七. 检出仓库

克隆本地仓库:

git clone /wenniuwuren/repository

克隆远端服务器上的仓库

git clone [email protected]:/wenniuwuren/repository

八. 查看本地与仓库的异同

修改 readme.txt 文件,然后执行 git status 查看本地和仓库的异同状态

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")

上述命令行提示信息意思是:本地已经修改,但还未 commit

执行 git diff 来查看本地与仓库详细的异同信息:

D:\gitTest>git diff
diff --git a/readme.txt b/readme.txt
index a888d81..77c430a 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1 +1 @@
-你的本地仓库由 git 维护的三棵“树”组成。第一个是你的 工作目录,它持有实际文件
;第二个是 暂存区(Index),它像个缓存区域,临时保存你的改动;最后是 HEAD,它指
向你最后一次提交的结果。
\ No newline at end of file
+update
\ No newline at end of file

九. 版本回退

1. git log 查看提交历史记录

D:\gitTest>git log

commit b5683e767328b904694b247214d6ccf6e467a4a0

Author: unknown <[email protected]>

Date:   Sat Jul 16 14:12:32 2016 +0800

update

commit 155899056f19a6d5f97aa4fc2f3550adcfe37b57

Author: unknown <[email protected]>

Date:   Sat Jul 16 11:23:29 2016 +0800

add readme file

需要友情提示:你看到的一大串类似的b5683e767328b904694b247214d6ccf6e467a4a0 是commit
id
(版本号),和SVN不一样,Git的commit id不是1,2,3……递增的数字,而是一个SHA1计算出来的一个非常大的数字。为什么commit
id
需要用这么一大串数字表示呢?因为Git是分布式的版本控制系统,想象一下多人在同一个版本库里工作,如果大家都用1,2,3……作为版本号,那肯定就冲突了。

2. 基础概念

  • HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git
    reset --hard commit_id
  • 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
  • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

3. 修改后相关撤销操作

首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交
b5683e767328b904694b247214d6ccf6e467a4a0,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。(PS:Windows
下用 HEAD^ 可能有点问题,会提示你 More? 本来输入 HEAD^ 就能回退到上一个版本,但是需要再输入一个 ^ 才能正确执行,Windows 下建议直接用 HEAD~1 回到上一个版本)

回退到上一个版本,就可以使用命令:

git reset --hard HEAD~1

上述的 hard 参数什么意思呢?

根据 soft、 mixed、 hard,会对 working tree 和 index 和 HEAD 进行重置:

git reset --mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息

git reset --soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可

git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

执行上述命令后,用 git log 就看不到执行记录了,只能用 git reflog 来查看所有的命令历史,这样就能根据提交的 id 来决定回到哪个版本,比如命令为:

D:\gitTest>git reset --hard b5683e7

HEAD is now at b5683e7 update

从上述命令可以看到,不需要输入全部提交的唯一标识 id,只要前几位 id 内容 git 就能区别是哪一个版本,执行完后,就回到了 b5683e7... 版本。

  • 修改后 未add(添加到暂存区) 需要撤销修改时:

git checkout -- myfile.txt 或 手动删除工作区修改 工作区 : clean 暂存区: clean

  • 修改后 add了(未commit) 再次修改文件 要撤销第二次修改时:git checkout -- myfile.txt(将暂存区恢复到工作区) 暂存区有第一次的修改需要commit
  • 修改后 add了(未commit),需要撤销修改时:git reset HEAD myfile.txt(将暂存区修改删除) 此时工作区的修改还未撤销git
    checkout -- myfile.txt(撤销工作区修改)
  • 修改后 add并commit了,需要撤销修改时:git reset --hard HEAD^(版本回退)**

十. 删除文件

git rm fileName.extension

然后 git commit  fileName.extension,就可以把暂存库上内容删除

参考资料:

https://zh.wikipedia.org/zh-cn/Git

http://rogerdudler.github.io/git-guide/index.zh.html                                                         http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001374027586935cf69c53637d8458c9aec27dd546a6cd6000

时间: 2024-12-25 16:44:59

Git 入门 ---- Git 常用命令的相关文章

Git 入门和常用命令详解

git 使用使用教程   git 使用简易指南  常用 Git 命令清单 下载   https://git-scm.com/downloads 工作流 本地仓库由三部分组成. 工作区:保存实际的文件(本地实际的文件目录) 缓存区(Stage / Index):临时保存文件改动 HEAD:指向最近一次提交的后果 下图说明了 Git 的工作流程 图片来源:http://www.runoob.com Git 常用命令 git init 创建新仓库.在当前目录中创建新的 Git 仓库,生成.git文件夹

Git入门及常用命令(1)(window环境下)

文章参考摘抄自:git教程 1.git的安装 Windows下要使用很多Linux/Unix的工具时,需要Cygwin这样的模拟环境,Git也一样.Cygwin的安装和配置都比较复杂,就不建议你折腾了.不过,有高人已经把模拟环境和Git都打包好了,名叫msysgit,只需要下载一个单独的exe安装程序,其他什么也不用装,绝对好用. msysgit是Windows版的Git,从https://git-for-windows.github.io下载,然后按默认选项安装即可. 安装完成后,在开始菜单里

Git 基本原理与常用命令

平时使用过两种版本控制软件 SVN 和 Git,平心而论,如果纯粹自己使用,那么绝对 Git 更加适合,本地库.远程库.离线工作.强大而灵活的分支.大名鼎鼎的Github, 这些都是选择 Git 的原因.记得刚接触时Git,感觉 Git 如此强大,再加上其是由大名鼎鼎的 Linus 所编写,所以花了很多的时间看各种资料,不过后来那些不常用的命令与功能还是仅仅停留在知道与了解的层面.Git 只是一种工具,是为了满足某种需求而被编写出来的一种工具,对于工具做到善加利用即可.当然,要做到善加利用,一定

Git本地库常用命令集

Git本地库常用命令集 以下所有的git命令都是在测试目录/git/下进行的.mkdir /git git init : 初始化git本地库在git本地库目录下执行该命令将会初始化一个git的本地库目录,此时在该目录下将会生成一个.git文件夹,其中包含有git本地库的配置文件及项目文件 git init git config [user.name][user.email] : 设置签名设置签名主要是为了使git能够区分提交代码的人员,其中签名级别又分为: 项目级别/仓库级别 : git con

git的一些常用命令

Git和SVN是我们最常用的版本控制系(Version Control System, VCS),当然,除了这二者之外还有许多其他的VCS,例如早期的CVS等.顾名思义,版本控制系统主要就是控制.协调各个版本的文档内容的一致性,这些文档包括但不限于代码文件.图片文件等等.早期SVN占据了绝大部分市场,而后来随着Git的出现,越来越多的人选择将它作为版本控制工具,社区也越来越强大.相较于SVN,最核心的区别是Git是分布式的VCS,简而言之,每一个你pull下来的Git仓库都是主仓库的一个分布式版

Docker快速入门——Docker常用命令

Docker快速入门--Docker常用命令 一.Docker命令简介 1.Docker命令简介 Docker的命令清单可以通过运行sudo docker或者sudo docker help命令查看.Docker容器技术在不断演化过程中,Docker的子命令已经达到41个,其中核心子命令(例如:run)还会有复杂的参数配置.Docker命令根据功能和使用场景可以分为4个部分. 2.Docker用户组 Docker守护进程绑定的是一个unix ?socket,而不是TCP端口,默认的属主是root

Git快速入门和常用命令

一.快速入门 本地初始化一个项目 首先,你需要执行下面两条命令,作为 git 的基础配置,作用是告诉 git 你是谁,你输入的信息将出现在你创建的提交中. git config --global user.name "你的名字或昵称" git config --global user.email "你的邮箱" 然后在你的需要初始化版本库的文件夹中执行: git init git remote add origin <你的项目地址> //注:项目地址形式为

git基础入门之常用命令操作

本内容参考:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 初学,有什么不对的地方 ,欢迎指出 一.工作区(本地仓库) 1.创建仓库(repository):git init 用法:在文件夹(变成仓库的文件夹)目录下执行 git init 2.添加文件:git add [文件路径] 如: 提交文件:git add test.txt 提交文件夹:git add test 提交任意文

Git之 基本常用命令

Git基本常用命令如下: mkdir:         XX (创建一个空目录 XX指目录名) pwd:          显示当前目录的路径. git init          把当前的目录变成可以管理的git仓库,生成隐藏.git文件. git add XX       把xx文件添加到暂存区去. git commit –m “XX”  提交文件 –m 后面的是注释. git status        查看仓库状态 git diff  XX      查看XX文件修改了那些内容 git