Git基础

作者: 鹘仑吞枣 | 来源:发表于2017-08-23 10:01 被阅读0次

创建版本库

用git init进行初始化git仓库

$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/

把文件添加到仓库里面

git add 文件名
总共分两步,第一个用add命令,第二步用commit进行提交

  1. 用命令git add告诉Git,把文件添加到仓库
git add readme.txt
  1. 用命令git commit告诉Git,把文件提交到仓库
git commit -m 'firstGitFile'
[master (root-commit) 7baadbe] firstGitFile
 1 file changed, 1 insertion(+)
 create mode 100644 readme.txt

-m 是提交的描述信息

文件状态的查看

使用git status 可以 看到此时文件是否被修改、是否已经commit等

$ echo 'aa' >> readme.txt 
$ 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")

查看修改的内容

使用git diff 文件名 查看具体的文件被修改的内容

git diff readme.txt 
diff --git a/readme.txt b/readme.txt
index ad9176c..3ae99eb 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1 +1,2 @@
 firsst
+aa

可以看到 "aa" 是刚刚添加 的东西
下面把修改的内容提交到仓库里面

~ShenQi$ git add readme.txt 
~ShenQi$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    modified:   readme.txt

~ShenQi$ git commit -m 'all'
[master 2bdd40c] all
 1 file changed, 1 insertion(+)
~ShenQi$ git status
On branch master
nothing to commit, working tree clean
SQMacBook-Pro:gitProject ShenQi$ 

查看日志

使用 git log 进行日志的查看

ShenQi$ git log
commit 2bdd40c4b102c1c0d66fb76e7c4223561909b917
Author: ShenQi <hapic@163.com>
Date:   Tue Aug 22 21:58:46 2017 +0800

    all

commit 7baadbe11855286e7c5f0b8558a66087c7be2008
Author: ShenQi <hapic@163.com>
Date:   Tue Aug 22 21:36:00 2017 +0800

    firstGitFile

如果觉得这样的格式太乱的话,可以 使用--pretty=oneline 这个参数进行格式化显示

gitProject $ git log --pretty=oneline
2bdd40c4b102c1c0d66fb76e7c4223561909b917 all
7baadbe11855286e7c5f0b8558a66087c7be2008 firstGitFile

第一列是版本号,第二列是提交时加的说明

版本的回退

在Git中,用HEAD表示当前版本,也就是最新的提交2bdd40....909b917(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

在进行版本回退时可以使用git reset命令

gitProject $ git reset --hard HEAD^
HEAD is now at 7baadbe firstGitFile
gitProject $ cat readme.txt 
firsst

可以看出已经回退到上个版本了

假如现在又不想回退了,想恢复到最新的那个版本

gitProject $ git log
commit 7baadbe11855286e7c5f0b8558a66087c7be2008
Author: ShenQi <hapic@163.com>
Date:   Tue Aug 22 21:36:00 2017 +0800

    firstGitFile

使用log命令时看到新提交的那个日志已经没了,此时可以通过git reflog命令来看进行还原的日志操作

gitProject $ git reflog
7baadbe HEAD@{0}: reset: moving to HEAD^
2bdd40c HEAD@{1}: commit: all
7baadbe HEAD@{2}: commit (initial): firstGitFile

可以看到从提交到还原的所有日志,现在就可以 通过第一列的版本号再次还原到最初的那个版本了

gitProject $ git reset -hard 2bdd40c
error: did you mean `--hard` (with two dashes ?)
gitProject $ git reset --hard 2bdd40c
HEAD is now at 2bdd40c all
gitProject $ cat readme.txt 
firsst
aa

内容又回来了

git log命令加-g参数 和 git reflog的功能 是一样的

gitProject $ git log -g --pretty=oneline
2bdd40c4b102c1c0d66fb76e7c4223561909b917 HEAD@{0}: reset: moving to 2bdd40c
7baadbe11855286e7c5f0b8558a66087c7be2008 HEAD@{1}: reset: moving to 7baadbe
7baadbe11855286e7c5f0b8558a66087c7be2008 HEAD@{2}: reset: moving to HEAD^
2bdd40c4b102c1c0d66fb76e7c4223561909b917 HEAD@{3}: commit: all
7baadbe11855286e7c5f0b8558a66087c7be2008 HEAD@{4}: commit (initial): firstGitFile

gitProject $ git reflog
2bdd40c HEAD@{0}: reset: moving to 2bdd40c
7baadbe HEAD@{1}: reset: moving to 7baadbe
7baadbe HEAD@{2}: reset: moving to HEAD^
2bdd40c HEAD@{3}: commit: all
7baadbe HEAD@{4}: commit (initial): firstGitFile

以上说的是对已经提交到本地仓库的文件的回退,本地仓库我们有缓存区和分支两部分,git add就是把本地修改的内存添加到缓存区,而git commi是把缓存区的修改提交到对应的分支上来。如何从缓存区撤销修改呢

分支的创建

git branch dev  --创建分支(dev是创建的分支名称)
git checkout dev  --切换分支(dev是创建的分支名称)

可以使用组合命令创建并切换分支

git checkout -b dev   (dev是创建的分支名称)

查看当前的分支

git branch
* dev
  master   (master是系统默认创建的主干)

合并某分支到当前分支

git merge dev   (dev是分支名称)

删除分支

 git branch -d dev   (dev是分支名称)

相关文章

  • 2.Git初步

    Git是什么 Git是什么 Git基础 Git基础 1. 下载安装Git GIT官网 安装好后,按win+R 输入...

  • Git总结

    初步 下载git 基础配置: 基础操作 获取Git仓库 初始化现有仓库 git init 克隆远程仓库 git c...

  • Git基本操作

    一、 git的基础操作 基础操作 1.在项目里创建一个git : $ git init 链接远程项目: $ git...

  • git操作

    git基础命令: git commit ---- 提交git branch newBranchName --- 新...

  • Git

    关于版本控制 Git 简史 Git 基础 安装 Git Git 前的配置

  • 2.3 Git 基础 - 查看提交记录

    提交记录git log 2.2 Git 基础 - 记录每次更新到仓库(删除和改名)2.4 Git 基础 - 撤销操...

  • 面试中的那些 Git 问题 - 基础部分

    面试中的那些 Git 问题 - 基础部分 面试中的那些 Git 问题 - 基础部分

  • 2016-06-24 阅读整理

    Git Git 基础命令Git 分支管理Git 分支合并Git 公钥提交Git 常用技巧Git 设置别名 Andr...

  • Git 系列文章

    GIT 初识 Git的基础操作 Git的远程操作 Git的分支管理 Git标签操作 Git团队协作 Git 多账户...

  • git资源学习

    git资源学习 Git详解之一 Git起步 Git详解之二 Git基础 Git详解之三 Git分支 Git详解之四...

网友评论

      本文标题:Git基础

      本文链接:https://www.haomeiwen.com/subject/leqddxtx.html