初始化本地仓库
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 add 和git 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 协议速度最快。







网友评论