- 将文件目录变为Git可管理的仓库:git init
@MacBook-Air:~/Documents/learngit$ git init
Initialized empty Git repository in /Users/zyp/Documents/learngit/.git/
- 把文件添加到git仓库
git add readme.txt
- 把文件提交到git仓库
# -m后所跟的字符串是对本次提交所做的说明,便于自己和他人查看
git commit -m "write a readme txt"
add和commit的区别:add是将文件添加到git仓库(暂存区),commit是将文件提交到仓库,一次commit可以提交多次add的文件
- 查看仓库当前状态
@MacBook-Air:~/Documents/learngit$ 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")
- 查看文件哪里作了改变
zyp@zypdeMacBook-Air:~/Documents/learngit$ git diff readme.txt
WARNING: terminal is not fully functional
ESC[diff --git a/readme.txt b/readme.txt
index 46d49bf..9247db6 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-Git is a version control system.
+Git is a distributed version control system.
Git is free software.
- 查看commit日志(由近及远)
@MacBook-Air:~/Documents/learngit$ git log
commit 70555fe7c1f232c42253c0d447757464096f4435 (HEAD -> master)
Author: zyp <x@qq.com>
Date: Mon Dec 3 20:07:17 2018 +0800
append GPL
commit c1c7e88c1bebb45ad8e134152cb5764927fdf35a
Author: zyp <x@qq.com>
Date: Mon Dec 3 20:05:22 2018 +0800
change
commit f7fdcffaf15dcd57ef25561624417ab413ea4dd1
Author: zyp <x@qq.com>
Date: Mon Dec 3 19:41:33 2018 +0800
write a readmefile
- 将文件回退到以前的版本
# 返回上一个版本HEAD^,返回前两个版本HEAD^^,返回前100个版本呢???HEAD~100
@MacBook-Air:~/Documents/learngit$ git reset --hard HEAD^
HEAD is now at c1c7e88 change
工作区和暂存区:请移步廖雪峰-工作区和暂存区
我们所执行的git add操作就是将文件放到暂存区,git commit操作就是讲暂存区的文件全部提交到当前分支
- 使用git checkout - - file命令撤销对文件的修改
- 若文件还未提交到暂存区,则执行此命令将文件恢复到和版本库一样的状态
- 若文件已经提交到暂存区,又做了修改,则此命令可以将文件恢复到和暂存区一样的状态
@MacBook-Air:~/Documents/learngit$ git checkout -- readme.txt
- 使用git reset HEAD file撤销暂存区中的修改
如上一节所言,若我们已将文件放到暂存区又想要修改,可使用git reset HEAD file命令将文件恢复到和版本中一样的内容 - 删除文件
# 1.先在删除本地删除
rm test.txt
# 2.在版本库中删除
git rm test.txt
# 3.提交
git commit -m "delete"
# -----------------------------
# 若不下心误删本地文件,使用git checkout -- file恢复
git checkout -- test.txt
# -----------------------------
# git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
添加git远程库
详情见添加远程库
从远程库克隆
详情见从远程库克隆
创建与使用分支
详情见创建与使用分支