Git基础操作

初始化本地仓库

Git 使用git init命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,所以git init是使用 Git 的第一个命令。

使用当前目录作为Git仓库,我们只需要使用$ git init命令初始化它。

$ git init
Initialized empty Git repository in F:/learn/.git/
Initialized表示创建成功

提交文件到仓库

将一个文件添加到Git仓库需要两步,只需要执行git addgit commit -m ""命令。

$ git add .... add后可添加多个文件名
$ git commit -m ""  在 " "号输入的是本次提交的说明

查看工作区状态

在编辑和改动一个文件,我们可以通过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:   word.doc

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

git status 命令可以让我们时刻掌握工作区当前的状态,上面的命令告诉我们文件被修改,但还没有提交仓库。
执行git diff命令可以查看文件变更内容。

$ git diff
diff --git a/word.doc b/word.doc
index e03ea8e..ae68263 100644
--- a/word.doc
+++ b/word.doc
@@ -1,2 +1,2 @@

- Create workflows to automatically build, 
+Git is a distributed version control system.

git diff命令通过(仓库里的文件和工作区文件进行比较)

撤销工作区文件内容

  • 在工作区编辑文件出现错误,需要回滚前一次编辑 执行git restore ...命令撤销对工作区文件的修改
  • 文件被放入暂存区(staged),还未提交到仓库。
    git restore --staged <file>.撤销暂存区文件回到工作区。
    git reset --hard HEAD 撤销工作区中所有未提交文件的修改内容

版本回退

回滚上个提交版本 $ git log$git reset --hard HEAD^

$ git log 查看提交版本
commit 8982ec4 7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master)
Author: yu311 <yu@gmail.com>
Date:   Fri May 14 14:06:15 2018 +0800

    Git 2

commit e54ebea3c209a690c39c13a46716e8fa000c366
Author: yu311 <yu@gmail.com>
Date:   Fri May 14 13:03:36 2019 +0800

    Git 1
$git reset --hard HEAD^ 回退到上一个版本

使用commit id回滚任意版本$ git refolg

$ git refolg
e54ebea (HEAD -> master) HEAD@{0}: reset: moving to HEAD
e54ebea (HEAD -> master) HEAD@{1}: commit: Git 2
8982ec4 HEAD@{2}: commit (initial): Git 1

    Git 1
commit 8982ec4  就是commit id号

$ git reset --hard 8982ec4
HEAD is now at 8982ec4 Git 2

在Git回退版本的时候非常快,这是因为git内部有一个指向版本的HEAD指针,当操作版本回滚时,内部其实是在更改HEAD值的指向。

Git 工作区、暂存区和版本库

工作区(Working Directory)

就是你在电脑里能看到的目录,比如我的 learngit 文件夹就是一个工作区:

版本库(Repository)

工作区有一个隐藏目录.git,这个不算工作区,而是 Git 的版本库。

Git 的版本库里存了很多东西,其中最重要的就是称为stage(或者叫 index)的暂存区,还有 Git 为我们自动创建的第一个分支 master,以及指向 master 的一个指针叫HEAD

版本库.jpg

图中我们可以看出此时 "HEAD" 实际是指向 master 分支的一个 "游标"。所以图示的命令中出现 HEAD 的地方可以用 master 来替换。
执行git add 把文件添加到暂存区(stage, index)。

执行git add git commit 把文件提交到HEAD (master)

删除文件

$git rm file 删除文件
$git status 查看文件状态

远程仓库

关联远程仓库
$git remote add origin [url]
推送本地仓库到远程仓库
$git push -u origin master
由于远程库是空的,我们第一次推送 master 分支时,加上了 -u 参数,Git 不但会把本地的 master 分支内容推送的远程新的 master 分支,还会把本地的 master 分支和远程的 master 分支关联起来,在以后的推送或者拉取时就可以简化命令。
克隆远程仓库
git clone [url]
Git 支持多种协议,包括 https,但通过 ssh 支持的原生 git 协议速度最快。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本节课程我们将完成一次从本地仓库修改代码、提交并推送到远程仓库的操作。 Git 本地仓库有三大区域:工作区、暂存区...
    Manchangdx阅读 533评论 0 0
  • 【git操作指令】 git help # 显示command的help git show # 显示某次提交的内容...
    liudai123阅读 265评论 0 0
  • Git 是目前最流行的分布式版本控制系统之一。 版本控制指的是,记录每次版本变更的内容和时间等细节,保留各版本之间...
    神齐阅读 1,521评论 0 7
  • 以下笔记主要参考gitgot,大致了解git使用和原理。 第一部分我们从个人的视角去研究如何用好Git,并且揭示G...
    carolwhite阅读 2,560评论 0 1
  • 文章来源: http://www.admin10000.com/document/5374.html 版权归属:涂...
    IT码哥阅读 307评论 0 0

友情链接更多精彩内容