欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-21 12:41:54
...

导航

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/%E8%87%AA%E5%AE%9A%E4%B9%89-Git-%E9%85%8D%E7%BD%AE-Gi

5.git clone 克隆仓库

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

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

$ cd course-git-blog-project

aaa@qq.com-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. 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)
显示日志
:表示下面还有很多条内容
q键可以推出git log日志

$ git log --oneline
$ git log --stat  # stat "统计信息statistics" 显示commit中更改的文件
$ git log -p or git log --patch #显示对文件做出实际更改的选项

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

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

9. git add 添加到缓存区

git 工作原理
优达学城_GIT 学习笔记(1)

$ 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 <name-of-branch-to-merge-in>  #合并分支
#查看将合并的分支
#查看分支的历史记录并寻找两个分支的 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)

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

14.更改commit

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

15.还原commit revert

git会执行与commit中的更改完全相反的更改

$ git revert <SHA-of-commit-to-revert>

16.重置commit ——reset

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

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

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

$ git branch backup
优达学城_GIT 学习笔记(1)

相关标签: Git