0%

git

Basic

Concept

Area

git分为三个区

  • 工作区:修改的东西会先保存在这个区域,git add操作后会并缓存到暂存区
  • 暂存区:待提交的东西保存在这个区域,git commit操作时会并打包到仓库区
  • 仓库区:归档的东西保存在这个区域

Name

  • 工作区:working area
  • 暂存区:stage area 也叫缓存区(cache area)
  • 仓库区:repository area

git diff –staged 和 –cached 是一个意思
注意存在 git restore –staged 但不存在 git restore –cached

Object

  • 工作区:结构为working tree
  • 暂存区:结构为index tree
  • 仓库区:结构为commit tree

Config

Repository

Clone

Remote

Submodule

Branch

推荐用git switch代替git checkout来切换分支

Tag

Change

推荐用git restore代替git checkout来还原变更

Commit

git revert:丢弃已提交记录的变更,并生成新的提交
git reset:丢弃已提交记录的变更,不生成新的提交

注意:如果提交已经推送到仓库并被别人同步了,就不能使用git reset,否则会造成代码丢失

Sync

git pull = git fetch + merge

git pull --rebase = git fetch + rebase

git mergegit rebase 都是同步变更的方式

  • merge:合并同步
    • 第一个参数是合并源头分支(即需被合并的分支)
    • 第二个参数是合并目标分支(省略的话默认是当前分支)
  • rebase:变基合并
    • 第一个参数是变基源头分支(即变基的基础分支)
    • 第二个参数是变基目标分支(省略的话默认是当前分支)

Pull

Push

Fetch

Merge

Rebase

Pick

Upstream

Fork

Log

Other

git prune:清除所有不可达的对象
git clean:清除所有未追踪的对象

只想买包辣条