工具学习笔记:Git

这篇文章总结了廖雪峰老师的git教程中的一些操作,还加入了一些在视频课程里学到的内容。

  Git学习参考了廖雪峰老师的教程和最近听的全栈课程里的介绍,以下是笔记,有些不全,后期学到了再来补。

1. 安装

1
2
3
4
1. homebrew install git (npm/cnpm都可以,使用包安装工具就行,直接下载包应该也没问题)
2. git --version 查看版本
3. git config --global user.name 查看/修改用户姓名
4. git config --global user.email 查看/修改用户邮箱

  只有第一次使用的时候需要设置user.name和user.email,方便以后提交的时候知道由谁提交的内容。

操作

  • 创建版本库
1
2
3
$ mkdir learngit(库名,可自定义)
$ cd learngit(库名) //进入库目录
$ pwd //显示当前目录
  • 把这个目录变成Git可以管理的仓库(只有执行一次)
1
2
$ git init 
Initialized empty Git repository in /Users/xxx/learngit/.git/
  • 查看隐藏文件
1
$ ls -ah
  • 提交文件
1
2
3
4
5
6
7
1. 在根目录下添加txt文件
2. $ git add xxx.txt
3. $ git commit -m "xxx” //-m后面输入本次提交的说明

小技巧
添加文件时可以添加目录下的全部文件
git add -A 或 git add.
  • 查看提交结果
    文件一般有两种状态:untracked(未追踪)和modified(被修改)
1
git status
  • 查看文件更改情况
1
git diff xxx(文件名)
  • 查看更改日志
1
2
3
4
5
git log 
// git log --pretty=oneline(查看简洁版)

小技巧
q可以退出git log 或git diff
  • 恢复到上一个版本
1
2
3
4
git reset --hard HEAD^
//git reset --hard HEAD~100 往上100个版本
//gig reset --hard xxxxx(版本号)
//git log查看时会有每个操作的ID号,复制前面几位作为版本号即可恢复到指定版本
  • 查看每一次命令(包括退回的命令)
1
git reflog
  • 查看文本内容
1
cat xxx<filename>
  • 撤销操作(git add之前)
1
git checkout -- <filename>
  • 撤销操作(git add之后)
1
git reset HEAD <filename>
  • 删除文件
    • 从文件夹删除 rm <filename>
    • 从版本库删除 git rm <filename>
    • 从版本库恢复 git checkout -- test.txt
  • .gitignore文件
    • 创建.gitignore文件,在文件内部列出不希望被同步到暂存区的文件名,可以避免commit时被同步提交

工作区 & 暂存区

  • 工作区

    • 版本库 —— 隐藏目录.git
      • stage —— 暂存区
      • master —— 第一个分支
      • HEAD —— 指向master的一个指针
  • 添加文件

    • git add —— 添加到暂存区
    • git commit —— 把暂存区的所有内容提交到当前分支

git机制.png

关联远程库

  • 关联
  • 如果将文件推送到github或其他平台会需要每次提交账户、密码信息,可以生成SSH秘钥,放到平台账号的设置里 (生成一个即可在各个平台上使用)
1
git remote add origin git@github.com:xxx/learngit.git
  • 切换远程库

    1
    git remote set-url origin git@github.com:xxx/learngit.git
  • 推送内容

1
2
git push -u origin master   //第一次推送(推送+关联master分支)
git push origin master //之后推送
  • 克隆库(注意在本地的保存地址)
1
git clone git@github.com:xxx/gitskills.git

分支管理

  • 创建新指针
1
2
3
git branch dev   //创建
git checkout dev //切换分支
git checkout -b dev //-b 创建并切换
  • 查看当前分支
1
git branch
  • 合并分支
1
git merge dev(分支名)
  • 删除分支
1
git branch -d dev(分支名)