【笔记】Git 学习记录

一. 指令记录

初始安装

安装完成后,还需要最后一步设置,在命令行输入:

  • git config --global user.name “Your Name”*
  • git config --global user.email “email@example.com”

创建仓库:进入仓库目录后再 git init

  • git init

查看:

  • git status // 查看工作区状态

  • git log // 查看历史版本,以便向后穿越
    • --pretty=oneline // 美化格式
  • git log --graph --pretty=oneline --abbrev-commit

  • git reflog // 引用日志(reflog)查看版本变更历史,命令历史,以便向前穿越。

git reflog 找到commit id,再”git reset --hard 版本id “退回指定版本。


  • git diff HEAD – <文件> //查看工作区和版本库HEAD的区别

增加:

  • git add // 从工作区(Working Directory) 保存暂存区(stage)
  • git commit -m ‘备注’ // 提交stage所有内容 + “备注信息” 到版本库(Repository)
    在这里插入图片描述

修改:

工作区退回到stage或repository:
在这里插入图片描述

  • git restore //表示将在工作空间(但是不在stage)的文件撤销更改 (有stage,变成stage;没有变成branch版本)

  • git restore --staged //作用是将暂存区的文件从暂存区撤出,但不会更改文件 (删除副本)


工作区退回到最近的repository:
在这里插入图片描述

  • git checkout – <文件名> //文件名前不要省略"–"。回退到最近一次stage or commit (git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。介绍在后文)

把暂存区的修改撤销(unstage):在这里插入图片描述

  • git reset HEAD <文件名> // 把stage的修改撤销掉(unstage),重新放回工作区

回退指定repository:

  • git reset --hard HEAD^ // 返回上一个版本
    • HEAD^^ // 返回上两个版本
    • HEAD~100 // 返回上100个版本
    • git reset --hard <版本号前几位> // 返回指定版本

删除:

先手动删除文件,然后使用git rm 和git add效果是一样的
从来没有被添加到版本库就被删除的文件,是无法恢复的!

  • git rm <文件> // 版本库中删除文件,之后再 commit

远程

  • git push origin master //本地分支master(也可以是其他的分支)推送到远程库上origin
    • git push -u origin master // 第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来

  • git branch -M master// 本地branch重命名为master
  • git branch --set-upstream branch-name origin/branch-name //建立本地分支和远程分支的关联,使用

  • git remote rm origin // 删除远程库 origin

分支操作

  • git branch //查看所有分支
  • git branch dev //创建dev分支
  • git branch -d dev // 删除 dev分支
  • git branch -D dev //强制删除dev分支(dev已经做出改动)

  • git switch -c dev //创建并切换dev分支
  • git switch master //切换到master分支

  • git merge dev // 合并dev分支到主分支master
  • git merge --no-ff -m “merge with no-ff” dev //no-ff模式合并(保留dev)

checkout 用版本库里的版本替换工作区的版本

  • git checkout – <文件名> // 回撤文件, 文件回到最近一次git commit或git add时的状态。
  • git checkout dev //切换到 dev分支
  • git checkout -b dev //创建并切换到dev分支; [-b]创建

  • git pull //从远程抓取分支

git stash

  • git stash list

  • git stash

  • git stash pop //复的同时把stash内容删除 (git stash apply+git stash drop)

cherry-pick

  • git cherry-pick 【4c805e2】 // 按照【4c805e2】的commit ,复制到当前分支,避免重复劳动。

tag

  • git tag v1.0 //新增标签(当前版本上)

  • git tag -d v1.0 //删除标签

  • git tag //查看所有标签

  • git show v1.0 //查看标签v1.0信息


  • git push origin 【tagname】

二. 问题记录

1. GitHub配置了公钥每次Push仍需要输入用户名和密码

HTTPS的格式为:https://github.com/用户名/仓库名.git
SSH的格式为:git@github.com:用户名/仓库名.git

参考

[1] Git官方手册
[2] 廖雪峰教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值