Git

作者: 小妖精_3c19 | 来源:发表于2017-12-02 10:45 被阅读0次

版本库(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 名称

相关文章

网友评论

      本文标题:Git

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