版本库(repository):可以被git管理起来的目录。git能跟踪该目录下每一个文件的修改、删除,也可以在未来某个时刻‘还原’
创建一个版本库:
windows 打开 git bash,选择位置创建一个空文件夹
$ mkdir testgit # 创建一个空文件夹
$ cd testgit # 进入创建的空文件夹
$ pwd # 显示当前文件夹路径
/d/testgit
$ git init # 把当前文件夹变成git可以管理的仓库
Initialized empty Git repository in D:/testgit/.git/
把文件添加到版本库:
用git bash 创建文件/文件夹,并将其添加到版本库
$ vim learn.txt # 在git版本库下创建文件/文件夹
$ git add learn.txt # 把文件添加到版本库
$ git commit -m "where" # 把文件提交到仓库,-m “xxx” 描述此次改动可以方便查看
[master (root-commit) aed7f63] where
1 file changed, 2 insertions(+)
create mode 100644 learn.txt
可以多次添加add后一次提交commit到版本库
查看仓库状态:
$ git status # 查看当前仓库状态,test.py被修改过但是还没有准备提交的修改
On branch masterChanges not staged for commit:
(use "git add..." to update what will be committed)
(use "git checkout --..." to discard changes in working directory)
modified: test.py
no changes added to commit (use "git add" and/or "git commit -a")
查看具体修改内容:
$ git diff
warning: LF will be replaced by CRLF in test.py.
The file will have its original line endings in your working directory.
diff --git a/test.py b/test.py
index 9f358a4..8c2f224 100644
--- a/test.py
+++ b/test.py
@@ -1 +1,7 @@
123456
+usyuyudiauy
+jshdjahud
+
+test123455
+git status
+
evilspirit@DESKTOP-UAJQMEC MINGW64 /d/AppTest (master)
$ git log # 查看日志,确定退回到哪个版本
commit fbb47d3eefe19d1855037358cfb33288c18ba913 (HEAD -> master)
Author: fjyleaves
Date: Thu Nov 16 16:11:05 2017 +0800
qwer
commit 050e87d4f8e4aa80ddcc68e734a7437972490059
Author: fjyleaves
Date: Thu Nov 16 13:13:36 2017 +0800
1234567
$ git log --pretty=oneline # 单行查看日志
fbb47d3eefe19d1855037358cfb33288c18ba913 (HEAD -> master) qwer
050e87d4f8e4aa80ddcc68e734a7437972490059 1234567
$ git reset --hard HEAD^ # 返回到上一版本
HEAD is now at 050e87d 1234567
$ git reflog # 记录每一次命令的commit id,回到未来的哪个版本
050e87d (HEAD -> master) HEAD@{0}: reset: moving to HEAD^
fbb47d3 HEAD@{1}: commit: qwer
050e87d (HEAD -> master) HEAD@{2}: commit (initial): 1234567
每次修改,如果不add到暂存区,那就不会加入到commit中。
撤回修改
$ git checkout -- test.py # 还没有add,撤回;在工作区撤回
$ git reset HEAD test.py # add后commit前撤回;在暂存区撤回
$ git checkout -- test.py
删除文件
$ rm cat.py # add前直接删除
$ vim dog.py # 创建文件
$ git add dog.py # 添加到暂存区,没有commit
$ rm dog.py # 删除物理文件
$ git rm dog.py # 删除暂存区文件,从commit删除
$ git checkout -- dog.py # 物理文件删除,暂存区未删除,找回文件
命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么永远不用担心误删,但是要小心,只能恢复文件到最新版本,会丢失最近一次提交后你修改的内容。
$ git remote add learn git@github.com:fjyleaves/study.git #learn 名称
网友评论