git常见命令使用


git 常见命令使用

git 仓库初始化

echo "# test" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:xxx.git
git push -u origin main

git reset

git reset命令用于将当前分支指向另一个位置。

# 将当期分支的指针倒退三个 commit,
# 并且会改变暂存区
$ git reset HEAD~3
# 倒退指针的同时,不改变暂存区
$ git reset --soft HEAD~3
# 倒退指针的同时,改变工作区
$ git reset --hard HEAD~3

如果不指定回滚的位置,那么等同于撤销修改。

# 撤销上一次向暂存区添加的所有文件
$ git reset
# 无任何效果
$ git reset --soft
# 同时撤销暂存区和工作区的修改,
# 回复到上一次提交的状态
$ git reset --hard
# 撤销上一次向暂存区添加的某个指定文件,
# 不影响工作区中的该文件
$ git reset -- <filename>

参数

  • soft: 不改变工作区和缓存区,只移动 HEAD 到指定 commit。
  • mixed: 只改变缓存区,不改变工作区。这是默认参数,通常用于撤销git add
  • hard:改变工作区和暂存区到指定 commit。该参数等同于重置,可能会引起数据损失。git reset --hard等同于git reset --hard HEAD
  • -p表示键入交互模式,指定暂存区的哪些部分需要撤销。
# Undo add
$ git reset
# Undo a commit,不重置工作区和缓存区
# 回到 HEAD 之前的那个 commit
$ git reset --soft HEAD^
# Undo a commit,重置工作区和缓存区
# 连续撤销三个 commit:HEAD, HEAD^, and HEAD~2
$ git reset --hard HEAD~3
# 从暂存区移除指定文件,但不改变工作区中的该文件
$ git reset -- frotz.c

文章作者: 高红翔
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 高红翔 !
  目录