优达学城_GIT 学习笔记(1)

导航

文章目录

    • 导航

###1.切换目录

$ cd "C:\Users\a1104\Documents\200 - work\210 - Work Tools\213_gitTUT"

###2.mkdir
创建一个目录,叫做 udacity-git-course

在该目录中,创建另一个目录,叫做 new-git-project

使用 cd 命令移到 new-git-project 目录下

mkdir -p undacity-git-course/new-git-project && cd $_   #-p --parents多个目录

###3.git init 创建一个新仓库

$ git init
Initialized empty Git repository in C:/Users/a1104/Documents/200_work/210_Work Tools/213_gitTUT/undacity-git-course/new-git-project/.git/

a1104@DESKTOP-9HV332D MINGW64 ~/Documents/200_work/210_Work Tools/213_gitTUT/undacity-git-course/new-git-project (master)

.git是一个库,Git的所有commit记录在这里,并跟踪所有内容。
###4.GIT的中文说明文档与Git的内部原理:
https://git-scm.com/book/zh/v2/自定义-Git-配置-Gi

###5.git clone 克隆仓库

$ git clone https://github.com/udacity/course-git-blog-project

注:使用git clone 后不改变shell的目录,要想去新克隆的仓库,还要使用cd命令

$ cd course-git-blog-project

a1104@DESKTOP-9HV332D MINGW64 ~/Documents/200_work/210_Work Tools/213_gitTUT/undacity-git-course/new-git-project/course-git-blog-project (master)

###6.pwd显示当前目录;cd …返回上一级目录
###7.git status 查看文件的状态
优达学城_GIT 学习笔记(1)_第1张图片

  1. On branch master – 这部分告诉我们 Git 位于 master 分支上。你已在术语表中获取了对分支的介绍,那么这是"master"分支(也就是默认分支)。我们将在第 5 节课深入了解分支。
  2. Your branch is up-to-date with ‘origin/master’. – 因为我们使用 git clone 从另一台计算机上复制了此仓库,因此这部分告诉我们项目是否与所复制的仓库保持同步状态。我们不会在其他计算机上处理该项目,因此这一行可以忽略。
    3.nothing to commit, working directory clean – 表示没有任何待定的更改。
    ###8.git log ;git log --oneline
    优达学城_GIT 学习笔记(1)_第2张图片
    显示日志
    :表示下面还有很多条内容
    q键可以推出git log日志
$ git log --oneline
$ git log --stat  # stat "统计信息statistics" 显示commit中更改的文件
$ git log -p or git log --patch #显示对文件做出实际更改的选项

优达学城_GIT 学习笔记(1)_第3张图片

$ git show           #显示最近的一次commit
$ git show fdf5493   #显示特定的commit  

###9. git add 添加到缓存区
git 工作原理
优达学城_GIT 学习笔记(1)_第4张图片

$ git add index.html  #添加到缓存区
$ git add css/app.css js/app.js
      ```bash               #句号 . 相当于添加所有的文件和目录
      $ git add css/app.css js/app.js
      # 等同于
      $ git add .
      ```

###10.git commit 提交到仓库

$ git commit     #此时会打开配置的编辑器,编写首行
$ git commit -m "Initial commit"  #可以不用打开编辑器,即可编辑首行

###11. git diff 用来查看已被加入但是尚未提交的更改

$ git diff   #git diff = git log -p

###12.标签 tag

$ git tag -a v1.0
注意:在上述命令 (git tag -a v1.0) 中,使用了 -a 选项。该选项告诉 git 创建一个带注释的标签。如果你没有提供该选项(即 git tag v1.0),那么它将创建一个轻量级标签。

建议使用带注释的标签,因为它们包含了大量的额外信息,例如:

标签创建者
标签创建日期
标签消息
因此,你应该始终使用带注释的标签。
$ git tag -d v1.0       #删除标签
$ git tag -a v1.0 a87984  #为特定的commit创建标签,非最近的commit

###13.分支 git branch

$ git branch
#列出仓库中的所有分支名称
#创建新的分支
#删除分支
$ git branch sidebar       #创建分支
$ git checkout sidebar      #切换分支
$ git log --oneline --decorate    #分支上的日志
$ git branch -d footer-fix       #删除分支
$ git checkout -b richards-branch-for-awesome-changes
#添加 -b 选项,则能够用一个命令创建分支并切换到该分支
$ git checkout -b footer master
#git checkout 创建新 footer 分支并让此 footer 分支的起点位置与 master 分支的一样
$ git log --oneline --decorate --graph --all
#同时查看所有分支,--graph选项将条目和行添加到输出的最左侧,显示实际分支
#--all 选项会显示仓库中的所有分支
$ git merge   #合并分支
#查看将合并的分支
#查看分支的历史记录并寻找两个分支的 commit 历史记录中都有的单个 commit
#将单个分支上更改的代码行合并到一起
#提交一个 commit 来记录合并操作

撤销合并

git reset --hard HEAD^

合并冲突

$ git merge heading-update 
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.

使用 git status查看冲突原因
优达学城_GIT 学习笔记(1)_第5张图片

<<<<<<< HEAD 此行下方的所有内容(直到下个指示符)显示了当前分支上的行
||||||| merged common ancestors 此行下方的所有内容(直到下个指示符)显示了原始行的内容
======= 表示原始行内容的结束位置,之后的所有行(直到下个指示符)是被合并的当前分支上的行的内容
>>>>>>>> heading-update 是要被合并的分支(此例中是 heading-update 分支)上的行结束指示符

###14.更改commit

$ git commit --amend   #更改最近的commit

###15.还原commit revert
git会执行与commit中的更改完全相反的更改

$ git revert 

###16.重置commit ——reset

$ git reset 
#将 HEAD 和当前分支指针移到引用的 commit
#使用 --hard 选项清除 commit
#使用 --soft 选项将 commit 的更改移至暂存区
#使用 --mixed 选项取消暂存已被 commit 的更改

注意,使用 git reset 命令将清除当前分支上的 commit。因此,如果你想跟着操作接下来出现的所有重置操作,需要在当前 commit 上创建一个分支,以便用作备份。

在进行任何重置操作之前,我通常会在最近的 commit 上创建一个 backup 分支,因此如果出现错误,我可以返回这些 commit:

$ git branch backup
优达学城_GIT 学习笔记(1)_第6张图片

你可能感兴趣的:(Litter,Tools)