Skip to content

Latest commit

 

History

History
75 lines (57 loc) · 2.32 KB

常用操作.md

File metadata and controls

75 lines (57 loc) · 2.32 KB

常用操作

commit

提交到历史记录

  • 提交:git commit -m "提交信息"
  • 修正最新提交:git commit -amend(生成新的commit替换旧的commit)

checkout

签出( checkout )指定的 commit

和reset区别:

  • reset:在移动 HEAD 时会带着它所指向的 branch 一起移动
  • checkout:只有HEAD移动

reset

重置 HEAD 以及它所指向的 branch 的位置的 --hard:重置位置的同时,清空工作目录的所有改动; --soft:重置位置的同时,保留工作目录和暂存区的内容,并把重置 HEAD 的位置所导致的新的文件差异放进暂存区。 --mixed(默认):重置位置的同时,保留工作目录的内容,并清空暂存区。

使用:

  • 丢弃最新提交:git reset --hard 目标commit
  • 丢弃非最新提交:使用git rebase

stash

把工作目录的内容全部放在你本地的一个独立的地方

  • 暂存:git stash
    • git stash -u:暂存包含没有被 track 的文件
  • 取暂存:git stash pop

revert

增加一个新的提交,把之前提交的内容抹掉

  • 撤销:git revert HEAD^

merge

  • 合并:git merge 分支
  • 取消合并:git merge --abort

log

查看历史中的多个 commit

  • 查看详细改动:git log -p
  • 查看大致改动:git log --stat

show

查看具体某个 commit

  • 要看最新 commit:git show
  • 要看指定 commit:git show commit的引用或SHA-1
  • 如果还要指定文件:git show 文件名

diff

查看未提交的内容

  • 查看工作目录和暂存区的区别:git diff
  • 查看工作目录和上一条 commit 的区别:git diff HEAD
  • 查看暂存区和上一条 commit 的区别:git diff --stagedgit diff --cached

rebase

merge合并会导致历史出现分叉,会让人觉得混乱而难以管理,所以可以用rebase 变基:给你的 commit 序列重新设置基础点

流程:(假如分支branch1)

  1. git checkout branch1
  2. git rebase master
  3. git checkout master
  4. git merge branch1

撤销提交:

  • git rebase -i 目标commit
  • git rebase --onto 目标commit 起点commit(注意:rebase 的时候会把起点排除在外) 终点commit

reflog

查看 Git 仓库中的引用的移动记录。例如可以用来找回被删除的branch(在系统回收时间之前可用)

  • git reflog