常用git命令

常规命令

  • git config --global user.name xxx //设置账户
  • git config --global user.email xxx@163.com
  • git config —list
  • git init
  • git add . //工作区 —> 缓存区
    git add a.txt b.txt
  • git rm a.txt //删除文件,相当于直接删除文件,又执行了放缓存区的操作
    git rm -f a.txt //强制删除
    git rm -r filebook //删除文件夹
  • git commit -m “msg”
  • git commit --amend //修改上一次提交记录(可修改代码,添加到缓存区后合并成一条提交记录)
  • git status
  • git diff a.txt
  • git pull //将远程代码拉到本地,并合并到本地分支(将本地修改作为)
  • git fetch //将远程代码拉到本地
  • git pull --rebase
  • git push
  • git stash //保存工作现场
    git stash -m “msg”
  • git stash list
  • git stash pop //恢复工作现场,并删除stash记录
    相当于:
    1. git stash apply //恢复
      git stash apply stash@{0} //恢复到指定stash
    2. git stash drop stash@{0} //删除stash 记录
  • git stash clear

版本回退

  • git log //提交日志,回退后新版本的提交记录会丢失
    git log -n //看到n次提交记录
    git log --pretty=oneline //简约版,将版本历史显示一行,历史版本号全部显示
    git log --pretty=oneline --abbrev-commit //将版本历史显示一行,历史版本号部分显示
  • git relog //命令历史,可找到所有版本号(后悔药)
  • git reset --hard HEAD^ //重置上一个版本,上上个版本HEAD^^ 上n个就有n个 ^,也可写作HEAD ~ n(例:HEAD~100)
    git reset --hard cmtID //不保留commit之前的代码
    git reset cmtID //保留commit之前的代码
  • git push -f origin dev //远程也回退版本(须先在执行本地回退)

撤销修改

  • git checkout – a.txt //撤销工作区的修改
    git checkout --* //撤销从上次提交之后做的所有修改
  • git reset HEAD a.txt //暂存区 —> 工作区
    git reset HEAD . //reset 所有文件
  • git commit --amend //修改上一次提交记录(可修改代码,添加到缓存区后合并成一条提交记录)

恢复相关

误操作 stash drop

  • git fsck --lost-found //历史操作过文件的记录
    说明: 每次提交会生成commit组件,之后会创建tree组件,存储文件信息,每个blob代表一个文件(存储文件内容),在tree里面能找到。
  • git show blob_no //查看文件内容
  • git stash apply id // 恢复

缓存区文件由于reset hard 丢失

方法一:

  • git fsck --lost-found //历史操作过文件的记录
    说明: 每次提交会生成commit组件,之后会创建tree组件,存储文件信息,每个blob代表一个文件(存储文件内容),在tree里面能找到。
  • git show blob_no //查看文件内容
  • git show blob_no > lose_file.txt //文件导出至lose_file.txt

方法二:

  • find ~/.git/objects -type f | xargs ls -lt | sed 10q //最近添加的10条add记录
  • git cat-file -t id //查看文件类型 把最后一个/去掉 复制objects/ 后面的所有东西放在-t后面
  • git cat-file -p id //根据文件类型显示内容

远程仓库相关

  • git remote add origin git@github.com:xxxx.git //关联本地和远程
  • git push -u origin master //第一次推送 -u 推送内容+关联本地和远程分支master分支
    git push origin master
  • git remote -v //查看远程仓库信息
  • git remote rm origin //解除本地与远程库的绑定
  • git clone git@github.com:xxxx.git //克隆本地库
  • git branch --set-upstream-to=origin/dev dev //设置本地分支与远程分支的链接

分支相关

  • git checkout -b dev //新建分支,HEAD指向dev
    git switch -c dev //新建分支,HEAD指向dev (防止与撤销命令混淆)
    相当于:
    1. git branch dev
    2. git checkout dev //切换分支
      git switch dev //切换分支
  • git branch //查看当前分支
  • git branch -d dev //删除分支
    git branch -D dev //强制删除(适用于要丢弃的没有merge过的分支)
  • git merge dev // dev合并到当前分支
  • git log --graph --pretty=oneline --abbrev-commit //分支合并图
    git log --graph
  • git merge --no-ff -m “merge with no-ff” dev //禁用fast forward
    模式,合并时生成一个新的commit,可查看分支信息。(fast forward 模式在合并分支时,会删除分支信息)
  • git cherry-pick 4c805e2 //把另一个分支的提交修改复制到当前分支,会在当前分支生成一个改动相同的commit记录
  • git rebase //把本地未push的分叉提交历史整理成一条直线

标签相关

  • git tag v1.0 //打标签,打在最新的commit上
    git tag v1.0 cmtID //打标签,打在对应的commit id上
  • git tag //查看所有标签
  • git show v1.0 //查看标签信息
  • git tag -a v0.1 -m “version 0.1 released” 1094adb //创建带说明的标签,-a指定标签名,-m说明文字
  • git tag -d v1.0 //删除标签
  • git push origin v1.0 //将标签传送到远程仓库
    git push origin --tags //将所有标签传送到远程仓库
  • git push origin :refs/tags/v0.9 //删除远程仓库的标签(需先删除本地,再执行改命令)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值