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