$ 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 log --oneline
$ git log --stat # stat "统计信息statistics" 显示commit中更改的文件
$ git log -p or git log --patch #显示对文件做出实际更改的选项
$ git show #显示最近的一次commit
$ git show fdf5493 #显示特定的commit
$ 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.
<<<<<<< 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: