依据学习廖雪峰老师的git教程做的笔记

依据学习廖雪峰老师的git教程做的笔记

根据学习廖雪峰老师的git教程做的笔记

根据学习廖雪峰老师的git教程做的笔记

安装git

进行git的配置

  • 配置您的用户名和邮箱地址,使用--global 这个参数表明了在此台机器上的所有仓库都会使用该配置

    
    $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com"
    

创建版本库

  1. 在本地的一个文件目录下,创建一个仓库test,就是一个名为test的文件夹

    
    $ mkdir test
    $ cd test
    $ pwd
    /d/Repositories/test
    
  2. 将该仓库交由git进行管理

    
    cd test
    git init
    Initialized empty Git repository in D:/Repositories/test/.git/
    

    执行 git init 命令会将该仓库叫由git进行管理,在该仓库下会多出一个.git的文件夹,该文件夹是用于跟踪管理版本库的

将文件添加至版本仓库

  1. 首先在仓库里创建一个文件,比如README.md

  2. 使用 git status 可以查看当前版本仓库的状态,当新建了README.md文件后,执行 git status 命令,可以看到以下的信息,未添加到仓库的文件列表以及提示可以使用 git add命令来将其添加到仓库中

    
    $ git staus
    
    On branch master
    
    Initial commit
    
    Untracked files:
    (use "git add <file>..." to include in what will be committed)
    
            README.md
    
    nothing added to commit but untracked files present (use "git add" to track)
    
  3. 使用 git add 命令来将文件添加到仓库,此时再执行 git status 可以看到以下信息,文件README。添加到了仓库中

    
    $ git add README.md
    $ git status
    On branch master
    
    Initial commit
    
    Changes to be committed:
    (use "git rm --cached <file>..." to unstage)
    
            new file:   README.md
    
  4. 使用 git commit 提交操作,-m 后面是对本次提交进行说明,可以说是这次提交干了啥事,得到的信息是:命令执行成功,一个文件改变插入了69行。

    
    $ git commit -m "add README.md"
    
    [master (root-commit) a88471c] add README.md
    1 file changed, 69 insertions(+)
    create mode 100644 README.md
    

由于README.md文件就是我正在编辑的笔记文件,所以该文件已经较上一次提交发生了改变,我们使用 git status 来查看状态

```shell

$ git stauts
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.md

no changes added to commit (use "git add" and/or "git commit -a")

```

可以使用 git diff 来查看文件具体的修改,显示的是当前文件与上一次提交的文件的不同

```

$ git diff README.md
```

然后我们可以将修改后的文件在添加并提交到仓库

```shell

    $ git add README.md
    $ git commit -m "update REMADE.md"
```

版本控制

  • 以上的操作向版本库提交了两次,使用 git log 可以查看提交的历史记录,按照由最近的提交到最远的提交排列,没一次提交都有唯一的 commitid 来标识,可以看到下列信息有,add README.mdupdate README.md 两次提交记录。

    
    $ git log
    
    commit 00673827e54d35b3db1950f8ac6f728d6e809386
    Author: lychiyu <lychiyu@gmail.com>
    Date:   Sat May 6 14:10:14 2017 +0800
    
        update README.md
    
    commit a88471c627f934ca1540bd5cc1d51c8a4a3b65ee
    Author: lychiyu <lychiyu@gmail.com>
    Date:   Sat May 6 10:30:19 2017 +0800
    
        add README.md
    
  • 如果想要回退到当前版本的上一个版本,可以使用以下命令,便回到了上一个版本,此时再执行 git log 命令,只能得到一个提交记录。

    
    $ git reset --hard HEAD^
    HEAD is now at a88471c add README.md
    
    $ git log
    commit a88471c627f934ca1540bd5cc1d51c8a4a3b65ee
    Author: lychiyu <lychiyu@gmail.com>
    Date:   Sat May 6 10:30:19 2017 +0800
    
        add README.md
    
  • 如何回到 update README.md 这个版本,可以使用以下命令,--hard 后面的字符是 update README.md 版本的 commitid 的前几位,这样就可以回到指定的版本了

    
    $ git reset --hard 00673827
    HEAD is now at 0067382 update README.md
    
  • 可以使用 git reflog 来查看命令记录


$ git reflog

管理修改

  • 撤销操作

    1. 当修改文件后并未执行 git add 时使用 git checkout --README.md 命令来撤销修改
    2. 执行了 git add 时,先使用 git reset HEAD README.md 再执行情况1的指令

    $ git reset HEAD README.md
    $ git checkout --README.md
3. 如果已经提交了,这可以执行版本回退操作

远程仓库

  • 生成 SHH Key,填上自己的邮箱地址,复制当前用户目录下“.ssh/id_rsa.pub” 里面的内容到github或者其他代码托管网站的ssh设置里面

    
    $ ssh-keygen -t rsa -C "lychiyu@gmail"
    
  • 将本地仓库,推送到远程代码库中的master分支上

    
    $ git remote add origin git@bitbucket.org:lychiyu/test.git
    $ git push -u origin master
    
  • 克隆远程仓库到本地

    
    $ git clone git@bitbucket.org:lychiyu/test.git
    

分支管理

  • 创建分支,创建一个dev分支,并切换至dev分支下

    
    $ git branch dev
    $ git checkout dev
    Switched to branch 'dev'
    

    使用git branch命令来查看所有的分支,在当前分支前会有星号标注

    
    $ git branch
    * dev
      master
    
  • 合并分支,使用git merge 命令来接需要合并的分支名,如下面,先切到master分支下,在将dev分支与其合并。

    
    $ git checkout master
    $ git merge dev
    
  • 删除分支,如下

    
    $ git branch -d dev
    Deleted branch dev (was 0067382).
    $ git branch
    * master